★ wanayoo — archive 1999 https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/JSON/parseNouvelle recherche | Portail wanayoo

JSON.parse()

von 2 Mitwirkenden:

Zusammenfassung

Die Methode JSON.parse() parst einen JSON-String in ein JavaScript-Objekt, wobei dieser optional noch einmal umgewandelt werden kann.

Syntax

JSON.parse(text[, reviver])

Parameter

text
Der String, der als JSON geparst werden soll. Siehe JSON für eine Beschreibung der JavaScript Object Notation.
reviver Optional

Als Funktion beschreibt reviver, wie das Parsing-Ergebnis umgewandelt wird, bevor es zurückgegeben wird.

Rückgabe

Gibt das Object zum JSON text entsprechende JavaScript-Objekt zurück. (Jeder akzeptierte Wert in JavaScript ist auch ein Objekt in JavaScript. Siehe Beispiele.)

Ausnahmen

Wirft eine SyntaxError Ausnahme wenn der String, der geparst werden soll, kein valides JSON ist.

Beispiele

Beispiel: JSON.parse() verwenden

JSON.parse('{}');              // {}
JSON.parse('true');            // true
JSON.parse('"foo"');           // "foo"
JSON.parse('[1, 5, "false"]'); // [1, 5, "false"]
JSON.parse('null');            // null

Beispiel: Den reviver Parameter verwenden

Wenn ein reviver angegeben wird, wird der durch das Parsing errechnete Wert vor der Rückgabe transformiert. Genauer wird der errechnete Wert und all seine Eigenschaften (beginnend bei der am tiefsten verwurzelten Eigenschaft bis hinauf zum ursprünglichen Wert) jeweils einzeln durch den reviver gegeben, wobei der Eigenschaften-Name und dessen Wert als Parameter, und das enthaltende Objekt als this übergeben wird. Gibt die reviver Funktion undefined (oder keinen Wert, z.B. weil das Ende der Funktion erreicht wird) zurück, wird die Eigenschaft vom sie enthaltenden Objekt gelöscht. Anderenfalls wird die Eigenschaft auf den Rückgabewert des reviver neu definiert.

Der reviver wird letztendlich mit einem leeren String und dem obersten Wert aufgerufen. Die angemessene Behandlung dieses Falls sollte sichergestellt werden, zum Beispiel indem der übergebene Wert direkt zurückgegeben wird, oder JSON.parse() gibt undefined zurück.

JSON.parse('{"p": 5}', function(k, v) {
  if (k === '') { return v; } // Wenn oberster Wert, dann direkte Rückgabe,
  return v * 2;               // sonst v * 2.
});                           // { p: 10 }

JSON.parse('{"1": 1, "2": 2, "3": {"4": 4, "5": {"6": 6}}}', function(k, v) {
  console.log(k); // Logge den Eigenschaften-Namen, der letzte ist "".
  return v;       // Gib den unveränderten Eigenschaftenwert zurück.
});

// Ausgabe:
// 1
// 2
// 4
// 6
// 5
// 3 
// ""

Beispiel: JSON.parse() erlaubt keine abschließenden Kommas

// Beides wirft einen Syntaxfehler
JSON.parse("[1, 2, 3, 4, ]");
JSON.parse("{ \"foo\" : 1, }");

Spezifikationen

Spezifikation Status Kommentar
ECMAScript 5.1 (ECMA-262)
Die Definition von 'JSON.parse' in dieser Spezifikation.
Standard Initial definition. Implemented in JavaScript 1.7.
ECMAScript 6 (ECMA-262)
Die Definition von 'JSON.parse' in dieser Spezifikation.
Anwärter Empfehlung  

Browserkompatibilität

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Grundlegende Unterstützung (Ja) 3.5 (1.9.1) 8.0 10.5 4.0
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Grundlegende Unterstützung (Ja) (Ja) 1.0 (1.0) (Ja) (Ja) (Ja)

Basierend auf Kangax's compat table.

Gecko-spezifische Notizen

Mit Gecko 29 (Firefox 29 / Thunderbird 29 / SeaMonkey 2.26) ruft ein missgebildetes JSON eine genauere Fehlermeldung hervor, welche Zeile und Spalte des Fehlers enthält.

JSON.parse('[1, 2, 3,]');
// SyntaxError: JSON.parse: unexpected character at
// line 1 column 10 of the JSON data

Siehe auch

Schlagwörter des Dokuments und Mitwirkende

Mitwirkende an dieser Seite: max_kl, dguhl
Zuletzt aktualisiert von: max_kl,