Kann ich Kommentare innerhalb einer JSON-Datei verwenden? Wenn ja, wie?
Antworten
Zu viele Anzeigen?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.
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
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.
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.
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.