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

JSON.parse() 解析

JSON用于与Web服务器交换数据。从Web服务器接收数据时,数据始终是字符串。

该JSON.parse()方法解析JSON字符串,以构造JavaScript值或该字符串描述的对象。

语法:

JSON.parse(text, reviver)

第一个参数指定要解析为JSON的字符串。

可选的第二个参数指定一个在返回值之前检查每个属性的函数。

解析JSON

假设我们从Web服务器收到以下文本:

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

使用该JSON.parse()方法,我们可以将JSON文本转换为JavaScript对象:

var myObj = JSON.parse('{"name":"Seagull", "age":22, "city":"New Delhi"
테스트를 보세요‹/›

来自服务器的JSON

您可以使用AJAX请求从服务器请求JSON。

如果来自服务器的响应以JSON格式编写,则可以将字符串解析为JavaScript对象。

다음 예제 요청 파일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;
테스트를 보세요‹/›

주의:문자열을 로컬 객체로 변환하는 것을해석,이렇게 로컬 객체를 네트워크에서 전송할 수 있는문자호칭됩니다문자열화