Die JSON-Syntax enthält keine Einschränkungen für die als Namen verwendeten Zeichenfolgen,...
Es gibt keine Norm Benennung von Schlüsseln in JSON und dass camelCase o schlangen_koffer sollte gut funktionieren.
TL;DR
Hier ist ein Faustformel die wohl von den meisten Entwicklern verwendet wird.
Technologie-Stapel
Konvention zur Namensgebung
Grund/ Leitfaden
Python " JSON " Python
schlangen_koffer
Einstimmig
Python " JSON " PHP
schlangen_koffer
Einstimmig
Python " JSON " Java
snake_case oder camelCase
Legen Sie fest, wo sich die Geschäftslogik befindet. Nutzen Sie die Vorteile des extrinsischen Stils von Java.
Python "JSON " Backend JavaScript
snake_case oder camelCase
Legen Sie fest, wo sich die Geschäftslogik befindet.
Python "JSON " Frontend JavaScript
schlangen_koffer
Scheiß auf das Front-End
Python " JSON " Sie wissen nicht
schlangen_koffer
Scheiß auf den Parser
PHP " JSON " Python
schlangen_koffer
Einstimmig
PHP " JSON " PHP
schlangen_koffer
Einstimmig
PHP " JSON " Java
snake_case oder camelCase
Legen Sie fest, wo sich die Geschäftslogik befindet. Nutzen Sie die Vorteile des extrinsischen Stils von Java.
PHP "JSON " Backend JavaScript
snake_case oder camelCase
Legen Sie fest, wo sich die Geschäftslogik befindet.
PHP "JSON " Frontend JavaScript
schlangen_koffer
Scheiß auf das Front-End
PHP " JSON " Sie wissen nicht
schlangen_koffer
Scheiß auf den Parser
Java " JSON " Python
camelCase oder snake_case
Legen Sie fest, wo sich die Geschäftslogik befindet. Nutzen Sie die Vorteile des extrinsischen Stils von Java.
Java " JSON " PHP
camelCase oder snake_case
Legen Sie die Geschäftslogik dort ab, wo sie sich befindet. Nutzen Sie die Vorteile des extrinsischen Stils von Java.
Java " JSON " Java
camelCase
Einstimmig
Java " JSON " JavaScript
camelCase
Einstimmig
Java " JSON " Sie wissen nicht
camelCase
Scheiß auf den Parser
Backend JavaScript " JSON " Python
camelCase oder snake_case
Legen Sie fest, wo sich die Geschäftslogik befindet.
Vorderseite JavaScript " JSON " Python
schlangen_koffer
Scheiß auf das Front-End
Backend JavaScript " JSON " PHP
camelCase oder snake_case
Legen Sie fest, wo sich die Geschäftslogik befindet.
Vorderseite JavaScript " JSON " PHP
schlangen_koffer
Scheiß auf das Front-End
JavaScript " JSON " Java
camelCase
Einstimmig
JavaScript " JSON " JavaScript
camelCase
Original
JavaScript " JSON " Sie wissen nicht
camelCase
Scheiß auf den Parser
Treibende Faktoren
Die Festlegung einer Namenskonvention ist sehr verwirrend, da JSON allein keinen Standard vorschreibt. Dies kann jedoch leicht herausgefunden werden, wenn man es in Komponenten aufteilt.
JSON-Generator
Programmiersprache
Konvention zur Namensgebung
Python
schlangen_koffer
PHP
schlangen_koffer
Java
camelCase
JavaScript
camelCase
JSON-Parser
Programmiersprache
Konvention zur Namensgebung
Python
schlangen_koffer
PHP
schlangen_koffer
Java
camelCase
JavaScript
camelCase
Großteil der Geschäftslogik
Sie müssen entscheiden, welche Seite die schwerwiegendere Geschäftslogik hat, ist es die JSON-Generator Seite oder die JSON-Parser Seite?
Natürliche Zugehörigkeit
Programmiersprache
Natürliche Zugehörigkeit
Python
immanent
PHP
immanent
Java
Extrinsisch
JavaScript
immanent
Intrinsisch - Programmiersprache, in der auf JSON zugegriffen wird natürlich ähnlich zum Zugriff auf native Objekte und Arrays.
Extrinsisch - Programmiersprache, in der auf JSON zugegriffen wird anders als der Zugriff auf native Objekte und Arrays. Nachstehend ein Beispiel für Java 's com.google.gson
Paket:
/**
* Using a method to access a property instead of using the standard 'dot.syntax'
*/
JsonElement.getAsString("snake_cased_key");
Einige konkrete Umsetzungen
Schlussfolgerungen
Die Wahl der richtigen JSON-Benennungskonvention für Ihre JSON-Implementierung hängt von Ihrem Technologie-Stack ab. Es gibt Fälle, in denen Sie Folgendes verwenden können schlangen_koffer , camelCase oder eine andere Namenskonvention.
Eine weitere Überlegung ist die Gewichtung des JSON-Generators gegenüber dem JSON-Parser und/oder dem Front-End-JavaScript. Im Allgemeinen sollte der Geschäftslogik mehr Gewicht beigemessen werden.
Auch, wenn die JSON-Parser Seite unbekannt ist, dann können Sie deklarieren, was immer für Sie arbeiten kann.
47 Stimmen
Ich war neugierig, was einige Branchenführer gewählt haben. Die APIs von Twitter und Facebook verwenden snake_case, während Microsoft und Google camelCase verwenden.
14 Stimmen
@Justin Das liegt daran, dass Twitter Ruby und Facebook PHP verwendet. Ruby und PHP sind in snake_case. Microsoft und Google verwenden C/.NET bzw. Java. Oh, das stimmt, .Net und Java stehen vielleicht auf camelCase. Es geht um die Konventionen der Programmiersprachen
3 Stimmen
Es gibt keinen Standard, aber es scheint üblich zu sein, den Standard der Technologie des Empfangssystems zu verwenden.
4 Stimmen
Alle sind richtig, es gibt keine strenge Konvention für Namen/Schlüssel in JSON. Obwohl, ich empfehle dringend, Kebab-Case zu vermeiden, da es nicht durch Punkt(.) Notation in Javascript zugegriffen werden kann und muss mit Array[] Notation zugegriffen werden, die ich denke, ist mühsam.
13 Stimmen
Geschlossen als primär meinungsbasiert? Der Auftraggeber fragte nach Fakten zu den Möglichkeiten/Grenzen des Formats, nicht nach der Meinung anderer. Er sagte "können Sie", nicht "sollten Sie". Vielleicht hat er sich für diese fünf Personen nicht klar genug ausgedrückt, aber man muss schon ein ziemlich schlechtes Leseverständnis haben, um nicht zu verstehen, was er wollte.
0 Stimmen
Wenn Sie JSON von einem Webbrowser aus senden, kann es sinnvoll sein, kebab-case zu verwenden. Der Grund dafür ist, dass die Daten wahrscheinlich aus einem HTML-Formular stammen und jeder Schlüssel aus dem Namen des Formularelements abgeleitet wird, der ein CSS-Name ist, der per Konvention die Groß-/Kleinschreibung verwendet.
3 Stimmen
Nach meiner Erfahrung ist für JSON snake_case besser geeignet. 1. Bei der Verwendung von camel case geht die Groß-/Kleinschreibung in vielen Datenbanken verloren oder muss speziell behandelt werden. Zum Beispiel ist Cassandra CQL case-insensitive. Wenn Sie dieses JSON auf DB-Datensätze abbilden möchten, ist es sinnvoll, snake_sase zu verwenden. 2. Der Bindestrich gilt in vielen Sprachen als Sonderzeichen und wird in Namen nicht akzeptiert.
0 Stimmen
Zalando erklärt einige Regeln: opensource.zalando.com/restful-api-guidelines/#130 , opensource.zalando.com/restful-api-guidelines/#118 Wenn Sie sich also generell an die Zalando-Regeln halten, könnte es für Sie klar sein