3、JSON.parse()

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/LOVEYSUXIN/article/details/102730489

JSON.parse()

JSON 的常规用途是同 web 服务器进行数据传输。

在从 web 服务器接收数据时,数据永远是字符串。

通过 JSON.parse() 解析数据,这些数据会成为 JavaScript 对象。

<script>
//json字符串
var text = '{"employees":[' +
'{"firstName":"Bill","lastName":"Gates" },' +
'{"firstName":"Steve","lastName":"Jobs" },' +
'{"firstName":"Elon","lastName":"Musk" }]}';

obj = JSON.parse(text);   //解析成JavaScript 对象
document.getElementById("demo").innerHTML =
obj.employees[2].firstName + " " + obj.employees[2].lastName;
</script>

输出:
Elon Musk
解析日期

JSON 中不允许日期对象。

如果需要包含日期,需要写为字符串。之后可以将其转换回日期对象:

var text =  '{ "name":"Bill Gates", "birth":"1955-10-28", "city":"Seattle"}';
var obj = JSON.parse(text);
obj.birth = new Date(obj.birth);

或者可以使用 JSON.parse() 函数的第二个参数,被称为 reviver

reviver 参数是函数,在返回值之前,它会检查每个属性。

var text = '{"name":"Bill Gates", "birth":"1955-10-28", "city":"Seattle"}';
var obj = JSON.parse(text, function (key, value) {
  if (key == "birth") {
    return new Date(value);
  } else {
    return value;
  }
});
解析函数

JSON 中不允许函数。

如果您需要包含函数,请把它写作字符串。

稍后您可以把它转换回函数:

var text =  '{ "name":"Bill Gates", "age":"function () {return 62;}", "city":"Seattle"}';
var obj = JSON.parse(text);
obj.age = eval("(" + obj.age + ")");

应该避免在 JSON 中使用函数,函数会丢失它们的作用域,而且还需要使用 eval() 把它们转换回函数。

猜你喜欢

转载自blog.csdn.net/LOVEYSUXIN/article/details/102730489