JSON .parse()
Eine übliche Verwendung von JSON ist der Austausch von Daten zu/von einem Webserver.
Beim Empfangen von Daten von einem Webserver handelt es sich bei den Daten immer um einen String.
Analysieren Sie die Daten mit JSON.parse()
, und die Daten werden zu einem JavaScript-Objekt.
Beispiel – Analysieren von JSON
Stellen Sie sich vor, wir haben diesen Text von einem Webserver erhalten:
'{"name":"John", "age":30, "city":"New York"}'
Verwenden Sie die JavaScript-Funktion JSON.parse()
, um Text in ein JavaScript-Objekt umzuwandeln:
const obj = JSON.parse('{"name":"John", "age":30, "city":"New
York"}');
Stellen Sie sicher, dass der Text im JSON-Format vorliegt, sonst erhalten Sie einen Syntaxfehler.
Verwenden Sie das JavaScript-Objekt auf Ihrer Seite:
Beispiel
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML = obj.name;
</script>
Array als JSON
Bei Verwendung von JSON.parse()
auf einem von einem Array abgeleiteten JSON gibt die Methode ein JavaScript-Array anstelle eines JavaScript-Objekts zurück.
Beispiel
const text = '["Ford", "BMW", "Audi", "Fiat"]';
const myArr = JSON.parse(text);
Ausnahmen
Analysieren von Daten
Datumsobjekte sind in JSON nicht zulässig.
Wenn Sie ein Datum einfügen müssen, schreiben Sie es als Zeichenfolge.
Sie können es später wieder in ein Datumsobjekt umwandeln:
Beispiel
Konvertieren Sie eine Zeichenfolge in ein Datum:
const text =
'{"name":"John", "birth":"1986-12-14", "city":"New York"}';
const obj = JSON.parse(text);
obj.birth = new Date(obj.birth);
document.getElementById("demo").innerHTML = obj.name + ", " + obj.birth;
Oder Sie können den zweiten Parameter der JSON.parse()
Funktion namens reviver verwenden .
Der Reviver- Parameter ist eine Funktion, die jede Eigenschaft überprüft, bevor sie den Wert zurückgibt.
Beispiel
Konvertieren Sie eine Zeichenfolge mit der Reviver - Funktion in ein Datum:
const text =
'{"name":"John", "birth":"1986-12-14", "city":"New York"}';
const obj = JSON.parse(text, function (key, value) {
if
(key == "birth") {
return new
Date(value);
} else {
return value;
}
});
document.getElementById("demo").innerHTML = obj.name + ", " + obj.birth;
Parsing-Funktionen
Funktionen sind in JSON nicht zulässig.
Wenn Sie eine Funktion einschließen müssen, schreiben Sie sie als Zeichenfolge.
Sie können es später wieder in eine Funktion umwandeln:
Beispiel
Konvertieren Sie einen String in eine Funktion:
const text =
'{"name":"John", "age":"function () {return
30;}", "city":"New York"}';
const obj = JSON.parse(text);
obj.age = eval("(" + obj.age + ")");
document.getElementById("demo").innerHTML = obj.name + ", " +
obj.age();
Sie sollten die Verwendung von Funktionen in JSON vermeiden, da die Funktionen ihren Gültigkeitsbereich verlieren und Sie sie mit verwenden müssten eval()
, um sie wieder in Funktionen umzuwandeln.