9370 Stimmen

Können Kommentare in JSON verwendet werden?

Kann ich Kommentare innerhalb einer JSON-Datei verwenden? Wenn ja, wie?

6955voto

Eli Punkte 93336

Nein.

Die JSON-Datei besteht nur aus Daten, und wenn Sie einen Kommentar hinzufügen, handelt es sich ebenfalls um Daten.

Sie könnten ein bestimmtes Datenelement namens "_comment" (oder so ähnlich), die von Anwendungen, die die JSON-Daten verwenden, ignoriert werden sollten.

Es wäre wahrscheinlich besser, den Kommentar in den Prozessen zu haben, die das JSON generieren/empfangen, da sie wissen sollten, was die JSON-Daten im Voraus sein werden, oder zumindest die Struktur davon.

Aber wenn Sie sich dafür entscheiden:

{
   "_comment": "comment text goes here...",
   "glossary": {
      "title": "example glossary",
      "GlossDiv": {
         "title": "S",
         "GlossList": {
            "GlossEntry": {
               "ID": "SGML",
               "SortAs": "SGML",
               "GlossTerm": "Standard Generalized Markup Language",
               "Acronym": "SGML",
               "Abbrev": "ISO 8879:1986",
               "GlossDef": {
                  "para": "A meta-markup language, used to create markup languages such as DocBook.",
                  "GlossSeeAlso": ["GML", "XML"]
               },
               "GlossSee": "markup"
            }
         }
      }
   }
}

2135voto

Nein , Kommentare der Form //… ou /*…*/ sind in JSON nicht erlaubt. Diese Antwort basiert auf:

  • https://www.json.org
  • RFC 4627 : Die application/json Medientyp für JavaScript Object Notation (JSON)
  • RFC 8259 Das Datenaustauschformat JavaScript Object Notation (JSON) (ersetzt die RFCs 4627, 7158, 7159)

991voto

Kyle Simpson Punkte 14622

Fügen Sie Kommentare ein, wenn Sie wollen; entfernen Sie sie vor dem Parsen oder Übertragen mit einem Minifier.

Ich habe gerade JSON.minify() die Kommentare und Leerzeichen aus einem JSON-Block entfernt und ihn zu gültigem JSON macht, das geparst werden kann. Sie könnten es also wie folgt verwenden:

JSON.parse(JSON.minify(my_str));

Als ich es veröffentlichte, erhielt ich eine große Anzahl von Leuten, die nicht einmal mit der Idee einverstanden waren, also beschloss ich, einen umfassenden Blogbeitrag darüber zu schreiben, warum Kommentare sind in JSON sinnvoll . Er enthält diesen bemerkenswerten Kommentar des Schöpfers von JSON:

Angenommen, Sie verwenden JSON, um Konfigurationsdateien zu speichern, die Sie mit Anmerkungen versehen möchten. Fügen Sie einfach alle Kommentare ein, die Sie möchten. Dann leiten Sie sie durch JSMin, bevor Sie sie an Ihren JSON-Parser weitergeben. - Douglas Crockford, 2012

Ich hoffe, das ist hilfreich für diejenigen, die nicht damit einverstanden sind, warum JSON.minify() nützlich sein könnte.

554voto

Artur Czajka Punkte 17533

Kommentare wurden absichtlich aus JSON entfernt.

Ich habe Kommentare aus JSON entfernt, weil ich gesehen habe, dass die Leute sie benutzen, um Parsing-Direktiven festzuhalten, eine Praxis, die die Interoperabilität zerstört hätte. Ich weiß, dass das Fehlen von Kommentaren einige Leute traurig macht, aber das sollte es nicht.

Angenommen, Sie verwenden JSON, um Konfigurationsdateien zu speichern, die Sie mit Anmerkungen versehen möchten. Fügen Sie einfach alle Kommentare ein, die Sie möchten. Dann leiten Sie sie durch JSMin, bevor Sie sie an Ihren JSON-Parser weitergeben.

Quelle: Öffentliche Erklärung von Douglas Crockford auf G+

368voto

laktak Punkte 52075

JSON unterstützt keine Kommentare. Es war auch nie dafür gedacht, für Konfigurationsdateien verwendet zu werden, in denen Kommentare erforderlich wären.

Hjson ist ein Konfigurationsdateiformat für Menschen. Entspannte Syntax, weniger Fehler, mehr Kommentare.

Hjson intro

Siehe hjson.github.io für JavaScript, Java, Python, PHP, Rust, Go, Ruby, C++ und C# Bibliotheken.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X