阅读 212

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;

测试看看‹/›

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


文章分类
代码人生
文章标签
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐