Vejo muitas perguntas girando em torno do acesso a chaves JSON que usam hífens (kebab-case), mas agora me pergunto se devo me ater ao camelCase ou snake_case nas minhas chaves. Eu sei que os hífens também podem criar mapeamentos complicados quando portados entre idiomas. Eu já vi algumas bibliotecas desserializadas JSON converterem essas chaves em um estilo camelCase.
Exemplo:
var something = {
"some-value": 'thing'
}
Vs
var something = {
"someValue": 'thing',
"some_other_value": 'thing_two'
}
javascript
api
api-design
json
web-api
Matt Oaxaca
fonte
fonte
Respostas:
Você pode usar qualquer coisa como chaves JSON, desde que seja UTF-8 válido, não contenha zero pontos de código e seria útil se você pudesse representar a chave como uma sequência na linguagem de programação de sua escolha. Eu recomendo não usar representações Unicode diferentes da mesma string (por exemplo "Ä" escritas como um ou dois pontos de código).
Lendo alguns comentários: Parece que algumas pessoas tentam criar classes com variáveis de instância que correspondem às chaves nos dicionários JSON. O que, obviamente, não funciona se sua chave for "algum valor", a menos que você escreva COBOL. Eu acho que isso é errado. Eu tenho classes de modelo que são projetadas da maneira que eu quero. JSON é usado apenas para preencher as classes do modelo. Vou pegar o que os servidores decidiram usar para as chaves e colocá-lo nos meus objetos de modelo.
fonte
Existem muitos sistemas de serialização JSON que são mais do que capazes de lidar com o mapeamento entre nomes de campos que não são adequados para uso no idioma ao qual se integram. Na maioria dos casos, eles não são difíceis de usar e exigem apenas um pouco de esforço extra. Em um mundo ideal, você não precisaria, mas se sua API já usar traços, alterá-la seria curar pior do que a doença. Observe também que o uso de traços é o estilo mais comum em certos idiomas, principalmente os baseados no LISP, portanto, provavelmente há uma minoria silenciosa dos consumidores da sua API que ficam felizes em ver traços em vez de outro formato.
fonte
Depois de passar algum tempo na indústria e trabalhar em alguns sistemas. Eu não acho que exista uma prática recomendada ou revestimento adequado para chaves JSON. O aspecto mais importante de qualquer formatação (case / estilo de código / etc) é consistência e adoção da equipe.
Se a base de código for fragmentada e inconsistente, reúna-se como uma equipe e concorde com um estilo consistente e policie a formatação coletivamente.
fonte