Je vois beaucoup de questions tournées autour de l'accès aux clés JSON qui utilisent des tirets (kebab-case), mais maintenant je me demande si je dois simplement m'en tenir à camelCase ou snake_case dans mes clés. Je sais que les tirets peuvent également créer des mappages complexes lorsqu'ils sont portés entre les langues. J'ai vu des bibliothèques de désérialisation JSON convertir ces clés en style camelCase.
Exemple:
var something = {
"some-value": 'thing'
}
Contre
var something = {
"someValue": 'thing',
"some_other_value": 'thing_two'
}
Vous pouvez utiliser n'importe quoi comme clés JSON, tant qu'il est UTF-8 valide, ne contient pas de points de code zéro, et il serait utile que vous puissiez représenter la clé sous forme de chaîne dans la programmation langue de votre choix. Je pourrais recommander de ne pas utiliser différentes représentations Unicode de la même chaîne (par exemple "Ä" écrit comme un ou deux points de code).
Lecture de quelques commentaires: Il semble que certaines personnes essaient de créer des classes avec des variables d'instance qui correspondent aux clés dans les dictionnaires JSON. Ce qui bien sûr ne fonctionne pas si votre clé est "une certaine valeur", sauf si vous écrivez COBOL. Je pense que c'est erroné. J'ai des classes de modèles qui sont conçues de la manière JE les veux. JSON est juste utilisé pour remplir les classes de modèle. Je vais prendre tout ce que les gars du serveur ont décidé d'utiliser pour les clés et le mettre dans mes objets de modèle.
Il existe de nombreux systèmes de sérialisation JSON qui sont plus que capables de gérer le mappage entre les noms de champs qui ne conviennent pas à une utilisation dans le langage avec lequel ils s'intègrent. Dans la plupart des cas, ils ne sont pas difficiles à utiliser et ne nécessitent qu'un petit effort supplémentaire. Dans un monde idéal, vous n'auriez pas à le faire, mais si votre API utilise déjà des tirets, le changer serait mieux guérir que la maladie. Notez également que l'utilisation des tirets est le style le plus courant dans certaines langues, notamment celles basées sur LISP, donc il y a probablement une minorité silencieuse des consommateurs de votre API qui sont heureux de voir des tirets plutôt qu'un autre format.
Après avoir passé quelque temps dans l'industrie et avoir travaillé quelques systèmes. Je ne pense pas qu'il existe une meilleure pratique ou un boîtier approprié pour les clés JSON. L'aspect le plus important de toute mise en forme (boîtier/style de code/etc.) est la cohérence et l'adoption par l'équipe.
Si la base de code est fragmentée et incohérente, réunissez-vous en équipe et convenez d'un style cohérent, puis surveillez collectivement le formatage.