Я вижу много вопросов, связанных с доступом к ключам JSON, в которых используются дефисы (кебаб-кейс), но теперь я задаюсь вопросом, стоит ли мне просто придерживаться camelCase или snake_case в моих ключах. Я знаю, что дефисы также могут создавать сложные отображения при переносе между языками. Я видел, как некоторые библиотеки десериализации JSON преобразовывали эти ключи в стиль camelCase.
Пример:
var something = {
"some-value": 'thing'
}
Vs
var something = {
"someValue": 'thing',
"some_other_value": 'thing_two'
}
javascript
api
api-design
json
web-api
Мэтт Оахака
источник
источник
Ответы:
Вы можете использовать что угодно в качестве ключей JSON, если это действительно UTF-8, не содержит нулевых кодовых точек, и было бы полезно, если бы вы могли представлять ключ в виде строки на выбранном вами языке программирования. Я мог бы порекомендовать не использовать разные Unicode-представления одной и той же строки (например, «Ä», написанные как одна или две точки кода).
Читая некоторые комментарии: Кажется, некоторые люди пытаются создавать классы с переменными экземпляра, которые соответствуют ключам в словарях JSON. Что, конечно, не работает, если ваш ключ имеет «некоторую ценность», если вы не пишете COBOL. Я думаю, что это неправильно. У меня есть классы моделей, которые разработаны так, как я хочу. JSON просто используется для заполнения классов модели. Я возьму все, что ребята решили использовать для ключей, и вложу в объекты моей модели.
источник
Существует множество систем сериализации JSON, которые более чем способны обрабатывать сопоставления между именами полей, которые не подходят для использования на языке, с которым они интегрируются. В большинстве случаев они не сложны в использовании и требуют лишь немного дополнительных усилий. В идеальном мире вам не придется этого делать, но если ваш API уже использует тире, его изменение будет излечивать хуже, чем болезнь. Также обратите внимание, что использование черточек является наиболее распространенным стилем в некоторых языках, особенно в тех, которые основаны на LISP, поэтому, вероятно, есть молчаливое меньшинство потребителей вашего API, которые рады видеть тире, а не другой формат.
источник
Проведя некоторое время в отрасли и проработав несколько систем. Я не думаю, что есть лучшая практика или надлежащий корпус для ключей JSON. Наиболее важным аспектом любого форматирования (корпус / стиль кода / и т. Д.) Является последовательность и принятие команды.
Если кодовая база фрагментирована и непоследовательна, соберите команду и договоритесь о едином стиле, а затем коллективно контролируйте форматирование.
источник