JSON-Namenskonvention

Gibt es einen Standard für die JSON-Benennung? Ich sehe die meisten Beispiele mit allen Kleinbuchstaben getrennt durch Unterstreichung (lower_case). Aber können Sie PascalCase oder camelCase verwenden?

Solutions Collecting From Web of "JSON-Namenskonvention"

Es gibt keinen EINZIGEN Standard, aber ich habe 3 Stile gesehen, die Sie erwähnen (“Pascal / Microsoft”, “Java” ( camelCase ) und “C” (Unterstriche, snake_case )) – sowie mindestens einen weiteren, kebab-case wie longer-name ).

Es scheint hauptsächlich davon abzuhängen, welchen Hintergrund die Entwickler des fraglichen Dienstes hatten; diejenigen mit c / c ++ – Hintergrund (oder Sprachen, die ähnliche Benennungen annehmen, einschließlich vieler Skriptsprachen, Ruby usw.) wählen oft Unterstreichungsvarianten; und ruhen Sie sich ähnlich (Java vs .NET). Jackson Bibliothek, die erwähnt wurde, zum Beispiel, Java Bean Namenskonvention ( camelCase )

UPDATE: Meine Definition von “Standard” ist eine SINGLE-Konvention. Während man also “ja, es gibt viele Standards” behaupten kann, gibt es für mich mehrere Naming Conventions , von denen keines “Der” Standard ist. Eine davon könnte als Standard für eine bestimmte Plattform gelten, vorausgesetzt, dass JSON für die Interoperabilität zwischen Plattformen verwendet wird, die sinnvoll sind oder auch nicht.

In diesem Dokument Google JSON Style Guide (Empfehlungen zum Erstellen von JSON-APIs bei Google),

Es empfiehlt, dass:

  1. Eigenschaftsnamen müssen camelCased , ASCII-Strings sein.

  2. Das erste Zeichen muss ein Buchstabe, ein Unterstrich (_) oder ein Dollarzeichen ($) sein.

Beispiel:

 { "thisPropertyIsAnIdentifier": "identifier value" } 

Unser Team verwendet diese Konvention.

Prämisse

Es gibt keine standardmäßige Benennung von Schlüsseln in JSON .

Treibende Faktoren

Die Einführung einer JSON-Namenskonvention ist sehr verwirrend. Dies kann jedoch leicht herausgefunden werden, wenn Sie es in Komponenten zerlegen.

  1. Programmiersprache zum Erzeugen von JSON

    • Python – Schlange
    • PHP – snake_case
    • Java – KamelCase
    • JavaScript – camelCase
  2. JSON selbst hat keine standardmäßige Benennung von Schlüsseln

  3. Programmiersprache zum Analysieren von JSON

    • Python – Schlange
    • PHP – snake_case
    • Java – KamelCase
    • JavaScript – camelCase

Mix-Match die Komponenten

  1. Python »JSON» PythonSchlange
  2. Python »JSON» PHPsnake_case
  3. Python »JSON» Javasnake_case oder camelCase
  4. Python »JSON» JavaScriptsnake_case macht Sinn; Schrauben Sie das Front-End sowieso
  5. Python »JSON» Sie wissen nicht – snake_case macht Sinn; Schrauben Sie den Parser trotzdem
  6. PHP »JSON» PythonSchlange
  7. PHP »JSON» PHPsnake_case
  8. PHP »JSON» Javasnake_case oder camelCase
  9. PHP »JSON» JavaScriptsnake_case macht Sinn; Schrauben Sie das Front-End sowieso
  10. PHP »JSON» PHPsnake_case
  11. PHP »JSON» Sie wissen nicht – snake_case macht Sinn; Schrauben Sie den Parser trotzdem
  12. Java »JSON» PythoncamelCase oder snake_case
  13. Java »JSON» PHPcamelCase oder snake_case
  14. Java »JSON» JavacamelCase
  15. Java »JSON» JavaScriptcamelCase
  16. Java »JSON» Sie wissen nicht – camelCase macht Sinn; Schrauben Sie den Parser trotzdem
  17. JavaScript »JSON» Pythonsnake_case macht Sinn; Schrauben Sie das Front-End sowieso
  18. JavaScript »JSON» PHPsnake_case macht Sinn; Schrauben Sie das Front-End sowieso
  19. JavaScript »JSON» JavacamelCase
  20. JavaScript »JSON» JavaScriptcamelCase

Einige tatsächliche Implementierungen

  • Google Maps JavaScript-API – camelCased
  • Facebook JavaScript API – snake_cased
  • Amazon Web Services – snake_cased & camelCased
  • Twitter-API – snake_cased
  • JSON-LD – camelCased & ProperCamelCased

Schlussfolgerungen

Die Auswahl der richtigen JSON-Namenskonvention für Ihre JSON-Implementierung hängt von Ihrem Technologie-Stack ab. Es gibt Fälle, in denen man snake_case , camelCase oder eine andere Namenskonvention verwenden kann.

Eine andere Sache, die man beachten sollte, ist die Gewichtung, die man dem JSON-Generator gegenüber dem JSON-Parser auferlegt. Im Allgemeinen sollte mehr Gewicht auf die JSON-Generator-Seite als auf die JSON-Parser-Seite gelegt werden. Dies liegt daran, dass die Geschäftslogik normalerweise auf der Seite des JSON-Generators liegt.

Wenn die JSON-Parser-Seite unbekannt ist, können Sie auch erklären, was für Sie funktioniert.

Insbesondere für mich auf NodeJS, wenn ich mit databaseen arbeite und meine Feldnamen Unterstriche getrennt sind, verwende ich sie auch in den Strukturschlüsseln.

Dies liegt daran, dass db-Felder eine Menge Akronyme / Abkürzungen haben, so dass etwas wie appSNSInterfaceRRTest ein wenig unordentlich aussieht, aber app_sns_interface_rr_test ist schöner.

In Javascript-Variablen sind alle camelCase- und classnnamen (Konstruktoren) ProperCase, also würde man sowas sehen

 var devTask = { task_id: 120, store_id: 2118, task_name: 'generalLedger' }; 

oder

 generalLedgerTask = new GeneralLedgerTask( devTask ); 

Und natürlich werden Schlüssel / Strings in JSON in doppelte Anführungszeichen eingeschlossen, aber dann verwenden Sie einfach JSON.stringify und übergeben JS-Objekte, also brauchen Sie sich darüber keine Gedanken zu machen.

Ich habe damit ein bisschen gerungen, bis ich dieses fröhliche Medium zwischen den Namenskonventionen von JSON und JS fand.

Scheint, dass es genug Variation gibt, dass die Leute aus dem Weg gehen, um die Konvertierung von allen Konventionen zu anderen zu erlauben: http://www.cowtowncoder.com/blog/archives/cat_json.html

Bemerkenswerterweise bevorzugt der erwähnte Jackson JSON-Parser das bean_naming .

Ich denke, es gibt keine offizielle Namenskonvention für JSON, aber Sie können einigen Branchenführern folgen, um zu sehen, wie es funktioniert.

Google, eines der größten IT-Unternehmen der Welt, hat einen JSON-Style-Guide: https://google.github.io/styleguide/jsoncstyleguide.xml

Sie können einen anderen Stilführer verwenden, den Google definiert: https://github.com/google/styleguide

Wie andere gesagt haben, gibt es keinen Standard, also sollten Sie selbst einen auswählen. Hier sind einige Dinge zu beachten:

  1. Wenn Sie JavaScript verwenden, um JSON zu konsumieren, bietet die Verwendung derselben Namenskonvention für Eigenschaften in beiden eine visuelle Konsistenz und möglicherweise einige Möglichkeiten zur Wiederverwendung von sauberem Code.

  2. Ein kleiner Grund, Kebab-Fall zu vermeiden, ist, dass die Bindestriche visuell mit - Zeichen, die in Werten erscheinen, kollidieren können.

     { "bank-balance": -10 }