#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"
;