Die Methode JSON.parse()
erzeugt aus einem JSON-formatierten Text ein entsprechendes Javascript-Objekt. Der optionale reviver-Parameter kann die Umwandlung im Detail beeinflussen.
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
Syntax
JSON.parse(text[, reviver])
Parameter
text
- JSON-formatierter Text, der eingelesen werden soll. Siehe
JSON
für eine Beschreibung der JavaScript Objekt Notation. reviver
Optional-
Wenn es sich um eine Funktion handelt, schreibt diese vor, wie der ursprünglich vom Parsen erzeugte Wert transformiert wird, bevor er zurückgegeben wird.
Rückgabewert
Die Funktion gibt das aus text
erzeugte Object
zurück.
Ausnahmen
SyntaxError
, falls text
kein gültiges JSON enthält.
Beispiele
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
Verwendung des reviver-Parameters
Wenn reviver
spezifiziert ist, wird der vom Parser berechnete Wert vor der Rückgabe Transformiert. Insbesondere der berechnete Wert und alle seine EIgenschaften (beginnend mit dem am tiefsten geschachtelten Eigenschaft bis hin zum originalen Wert selbst) werden separat mit dem reviver
Ausgeführt. Dann wird sie aufgerufen, wobei das Objekt, das die Eigenschaft enthält, als this
und der Eigenschaftsname als Zeichenfolge und der Eigenschaftswert als Argumente verarbeitet werden. Wenn reviver
undefined
zurück gibt (oder keinen Wert zurück gibt, wenn zum Beispiel die Ausführung der Funktion fehlschlägt), wird die Eigenschaft aus dem Ergebnis entfernt. Anderenfalls wird dessen Wert in den Rückgabewert neu definiert.
Falls reviver
nur einige Werte ändert, muss sichergestellt sein, dass die unveränderten Werte auch zurückgegeben werden, ansonsten werden diese Werte aus dem Ergebnis gelöscht.
JSON.parse('{"p": 5}', (key, value) =>
typeof value === 'number'
? value * 2 // Gibt value * 2 für Zahlen zurück.
: value // Alle anderen Werte werden unverändert zurückgegeben.
);
// { p: 10 }
JSON.parse('{"1": 1, "2": 2, "3": {"4": 4, "5": {"6": 6}}}', (key, value) => {
console.log(key); // Loggt die Namen der Eigenschaften, der letzte ist "".
return value; // Gib den unveränderten Eigenschaftenwert zurück.
});
// 1
// 2
// 4
// 6
// 5
// 3
// ""
JSON.parse() erlaubt keine abschließenden Kommas
// Beides erzeugt 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 | Initiale Definition. Implementiert in JavaScript 1.7. |
ECMAScript 2015 (6th Edition, ECMA-262) Die Definition von 'JSON.parse' in dieser Spezifikation. |
Standard | |
ECMAScript (ECMA-262) Die Definition von 'JSON.parse' in dieser Spezifikation. |
Lebender Standard |
Browserkompatibilität
BCD tables only load in the browser