Есть ли имя для этого шаблона форматирования JSON с начальными запятыми?

#json #serialization #formatting #indentation

#json #сериализация #форматирование #отступ

Вопрос:

Я видел допустимый JSON, написанный таким образом:

 { "version": 1
, "object":
  { "one": 1
  , "two": 2
  , "three": 3
  , "four": 4,
  , "five": 5
  }
, "array":
  [ 1
  , 2
  , 3
  ]
, "people":
  [ { "firstname": "Jacob",
    , "lastname": "Ford"
    }
  , { "firstname": "Marcin"
    , "lastname": "Wichary"
    }
  ]
}
  

Я предполагаю, что основное преимущество заключается в том, что добавление или удаление одной строки данных будет (за несколькими исключениями) отличаться просто так: добавление или удаление одной строки. В отличие от более типичного представления в формате JSON с конечными запятыми, где добавление элемента в конец массива или объекта требует редактирования строки перед ним, чтобы добавить запятую.

Есть ли имя для этого соглашения о представлении JSON с начальными запятыми и запятыми, помещенными в тот же столбец, что и открывающие / закрывающие скобки?

Ответ №1:

Обычно его называют обозначением через запятую (хотя его иногда также называют обозначением через начальную запятую), и оно может применяться к большему, чем просто JSON. Команды SQL — еще один хороший пример.

руководство по стилю кода npm требует этого для всех списков, разделенных запятыми. Airbnb запрещает это.

Мое предположение об этом стиле, создающем более чистые различия, было правильным; однако некоторые предпочитают достигать той же цели, используя конечные запятые, но всегда включая (ненужную) висячую запятую после последнего элемента. Вышеупомянутое руководство по стилю кода Airbnb, в разделе сразу после запрета обозначения через запятую, требует, чтобы после списков были расставлены запятые, явно для более чистых различий.

Сторонники указывают на одно дополнительное преимущество, которое заключается в том, что опечатки становятся гораздо более заметными в обозначении через запятую. Часто цитируетсяэта суть изобретателя npm, которую я приведу здесь:

 // error in standard style
var a = "ape",
  b = "bat",
  c = "cat",
  d = "dog"
  e = "elf",
  f = "fly",
  g = "gnu",
  h = "hat",
  i = "ibu";

// error in comma-first style
var a = "ape"
  , b = "bat"
  , c = "cat"
  , d = "dog"
  e = "elf"
  , f = "fly"
  , g = "gnu"
  , h = "hat"
  , i = "ibu"
  ;