English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

JSON.parse() Parse

JSON wird verwendet, um mit Webservern Daten auszutauschen. Wenn Daten vom Webserver empfangen werden, sind sie immer Zeichenfolgen.

Die JSON.parse()-Methode parsert JSON-Zeichenfolgen, um JavaScript-Werte oder die durch die Zeichenfolge beschriebenen Objekte zu konstruieren.

Syntax:

JSON.parse(text, reviver)

Der erste Parameter gibt die Zeichenfolge an, die in JSON umgewandelt werden soll.

Der optionale zweite Parameter gibt eine Funktion an, die vor jedem Attribut im Rückgabewert überprüft wird.

JSON-Parser

Angenommen, wir erhalten folgenden Text von einem Webserver:

 {"name":"Seagull", "age":22, "city":"New Delhi"

Mit dem JSON.parse()-Verfahren können wir JSON-Text in ein JavaScript-Objekt umwandeln:

var myObj = JSON.parse('{"name":"Seagull", "age":22, "city":"New Delhi"
测试看看‹/›

JSON vom Server

Sie können mit AJAX-Anfragen JSON vom Server anfordern.

Wenn die Antwort des Servers im JSON-Format geschrieben ist, kann die Zeichenfolge in ein JavaScript-Objekt umgewandelt werden.

以下示例请求文件demo.json并解析响应:

var httpRequest = new XMLHttpRequest();
httpRequest.onreadystatechange = function() {
   if (this.readyState === 4 && this.status === 200) {
      var myObj = JSON.parse(this.responseText);
      document.getElementById("output").innerHTML = myObj.name;
   }
};
httpRequest.open("GET", "demo.json", true);
httpRequest.send();
测试看看‹/›

数组作为JSON

JSON.parse()在从数组派生的JSON上使用方法,该方法将返回JavaScript数组,而不是JavaScript对象。

以下示例请求文件json_array.txt并解析响应:

var httpRequest = new XMLHttpRequest();
httpRequest.onreadystatechange = function() {
   if (this.readyState === 4 && this.status === 200) {
      var myArr = JSON.parse(this.responseText);
      document.getElementById("output").innerHTML = myArr[0];
   }
};
httpRequest.open("GET", "json_array.txt", true);
httpRequest.send();
测试看看‹/›

解析日期

JSON中不允许使用日期对象。

如果需要包括日期,则将其写为字符串,然后稍后将其转换回日期对象。

var myJSON = '{"name":"Seagull", "birth":"1997-11-10", "city":"New Delhi"}
var myObj = JSON.parse(myJSON);
myObj.birth = new Date(myObj.birth);
document.getElementById("output").innerHTML = myObj.name + " DOB is " + myObj.birth;
测试看看‹/›

注意:将字符串转换为本地对象称为解析,而将本地对象转换为可以在网络上传输的字符串被称为字符串化