9370 Stimmen

Können Kommentare in JSON verwendet werden?

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

92voto

raffel Punkte 1281

Sie sollten eine JSON-Schema stattdessen. Das JSON-Schema ist derzeit ein vorgeschlagener Internet-Spezifikationsentwurf. Neben der Dokumentation kann das Schema auch zur Validierung Ihrer JSON-Daten verwendet werden.

Exemple :

{
    "description":"A person",
    "type":"object",
    "properties":
        {
            "name":
                {
                    "type":"string"
                },
            "age":
                {
                    "type":"integer",
                    "maximum":125
                }
        }
}

Sie können die Dokumentation mit der Funktion Beschreibung Schema-Attribut.

87voto

Dominic Cerisano Punkte 3159

NO . JSON unterstützte früher Kommentare, aber sie wurden missbraucht und aus dem Standard entfernt.

Vom Schöpfer von JSON:

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. - Douglas Crockford, 2012

Die offizielle JSON-Website finden Sie unter JSON.org . JSON ist definiert als eine Standard von ECMA International. Es gibt immer ein Petitionsverfahren für die Überarbeitung von Normen. Es ist aus mehreren Gründen unwahrscheinlich, dass dem JSON-Standard Anmerkungen hinzugefügt werden.

JSON ist von seiner Konzeption her eine leicht rückverfolgbare (von Menschen geparste) Alternative zu XML. Es ist sogar so weit vereinfacht, dass Anmerkungen überflüssig sind. Es handelt sich nicht einmal um eine Auszeichnungssprache. Das Ziel ist Stabilität und Interoperabilität.

Jeder, der die "has-a"-Beziehung der Objektorientierung versteht, kann jede JSON-Struktur verstehen - das ist der springende Punkt. Es handelt sich lediglich um einen gerichteten azyklischen Graphen (DAG) mit Knoten-Tags (Schlüssel/Wert-Paare), was eine nahezu universelle Datenstruktur ist.

Der einzige erforderliche Vermerk könnte lauten: "//Dies sind DAG-Tags". Die Schlüsselnamen können so informativ wie nötig sein und erlauben eine beliebige semantische Arität.

Jede Plattform kann JSON mit nur wenigen Zeilen Code parsen. XML erfordert komplexe OO-Bibliotheken, die auf vielen Plattformen nicht praktikabel sind.

Anmerkungen würden JSON nur weniger interoperabel machen. Es gibt einfach nichts mehr hinzuzufügen, es sei denn, Sie brauchen wirklich eine Auszeichnungssprache (XML) und es ist Ihnen egal, ob Ihre persistierten Daten leicht zu parsen sind.

BUT Wie auch der Schöpfer von JSON feststellte, gab es in der JS-Pipeline schon immer Unterstützung für Kommentare:

Sie können so viele Kommentare einfügen, wie Sie möchten. Dann leiten Sie es durch JSMin, bevor Sie es an Ihren JSON-Parser weitergeben. - Douglas Crockford, 2012

86voto

Andrejs Punkte 25249

Wenn Sie Folgendes verwenden Jackson als Ihren JSON-Parser verwenden, dann aktivieren Sie ihn so, dass er Kommentare zulässt:

ObjectMapper mapper = new ObjectMapper().configure(Feature.ALLOW_COMMENTS, true);

Dann können Sie Kommentare wie diesen abgeben:

{
  key: "value" // Comment
}

Und Sie können auch Kommentare haben, die mit # durch Einstellung:

mapper.configure(Feature.ALLOW_YAML_COMMENTS, true);

Aber im Allgemeinen (wie bereits beantwortet) lässt die Spezifikation keine Kommentare zu.

57voto

dvdmn Punkte 6028

Wenn Sie die Newtonsoft.Json-Bibliothek mit ASP.NET zum Lesen/Deserialisieren verwenden, können Sie Kommentare im JSON-Inhalt verwenden:

//"Name": "string"

//"id": int

oder

/* Dies ist ein

Beispiel für einen Kommentar */

PS: Einzeilige Kommentare werden nur von den Versionen 6+ von Newtonsoft Json unterstützt.

Zusätzlicher Hinweis für Leute, die nicht über den Tellerrand hinausschauen können: Ich verwende das JSON-Format für Grundeinstellungen in einer von mir erstellten ASP.NET-Webanwendung. Ich lese die Datei, konvertiere sie mit der Newtonsoft-Bibliothek in das Einstellungsobjekt und verwende sie bei Bedarf.

Ich ziehe es vor, Kommentare zu jeder einzelnen Einstellung in die JSON-Datei selbst zu schreiben, und die Integrität des JSON-Formats ist mir eigentlich egal, solange die von mir verwendete Bibliothek damit einverstanden ist.

Ich denke, dass dies eine einfachere und verständlichere Methode ist, als eine separate Datei "settings.README" zu erstellen und die Einstellungen darin zu erklären.

Wenn Sie ein Problem mit dieser Art der Nutzung haben, dann ist der Geist aus der Lampe verschwunden. Die Leute würden andere Verwendungen für das JSON-Format finden, und Sie können nichts dagegen tun.

51voto

John T. Vonachen Punkte 551

Wenn Ihre Textdatei, die eine JSON-Zeichenkette ist, von einem Programm gelesen werden soll, wie schwierig wäre es, entweder C- oder C++-Kommentare zu entfernen, bevor sie verwendet werden?

Antwort: Es wäre ein Einzeiler. Wenn Sie das tun, dann könnten JSON-Dateien als Konfigurationsdateien verwendet werden.

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