9370 Stimmen

Können Kommentare in JSON verwendet werden?

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

7voto

Nick Punkte 10218

Wenn Ihr Kontext die Node.js-Konfiguration ist, können Sie JavaScript über module.exports als Alternative zu JSON:

module.exports = {
    "key": "value",

    // And with comments!
    "key2": "value2"
};

Le site require Die Syntax bleibt die gleiche. Da es sich um JavaScript handelt, sollte die Dateierweiterung lauten .js .

6voto

Mark Punkte 16672

Wie bereits in vielen Antworten erwähnt, verfügt JSON von Haus aus nicht über Kommentare. Natürlich möchte man sie manchmal trotzdem haben. Für Python zwei Möglichkeiten, dies zu tun, sind commentjson ( # et // nur für Python 2) oder json_tricks ( # ou // für Python 2 und Python 3), das noch einige andere Funktionen hat. Haftungsausschluss: Ich habe json_tricks .

6voto

Heewoon Punkte 152

JSON unterstützt zwar keine Kommentare, JSONC tut.

Benennen Sie Ihre Datei mit der Erweiterung ".jsonc" und verwenden Sie eine jsonc Parser.
Entschuldigung, wenn diese Antwort zu spät kam.

jsonWithComments.jsonc

Exemple :

{
    // This is a comment!
    "something": "idk"

}

Wenn dies unklar ist, denke ich, dass der Bot komisch ist. Bitte versuchen Sie es, bevor Sie diese Frage als nicht hilfreich bewerten.

5voto

Alexander Shostak Punkte 577

Sie können eine einfache Vorverarbeitung über reguläre Ausdrücke verwenden. Die folgende Funktion dekodiert zum Beispiel kommentiertes JSON in PHP:

function json_decode_commented ($data, $objectsAsArrays = false, $maxDepth = 512, $opts = 0) {
  $data = preg_replace('~
    (" (?:[^"\\\\] | \\\\\\\\ | \\\\")*+ ") | \# [^\v]*+ | // [^\v]*+ | /\* .*? \*/
  ~xs', '$1', $data);

  return json_decode($data, $objectsAsArrays, $maxDepth, $opts);
}

Es unterstützt alle Kommentare im PHP-Stil: /*, #, //. String-Literale werden unverändert beibehalten.

4voto

bortunac Punkte 4266

*.json-Dateien werden in der Regel als Konfigurationsdateien oder statische Daten verwendet, daher die Notwendigkeit von Kommentaren einige Editoren wie NetBeans akzeptieren Kommentare in *.json.

Das Problem ist das Parsen von Inhalten in ein Objekt. Die Lösung besteht darin, immer eine Reinigungsfunktion (Server oder Client) anzuwenden.

PHP

 $rgx_arr = ["/\/\/[^\n]*/sim", "/\/\*.*?\*\//sim", "/[\n\r\t]/sim"];
 $valid_json_str = \preg_replace($rgx_arr, '', file_get_contents(path . 'a_file.json'));

JavaScript

valid_json_str = json_str.replace(/\/\/[^\n]*/gim,'').replace(/\/\*.*?\*\//gim,'')

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