通过JavaScript,认识JSON

2021-03-26 00:29

阅读:638

JSON最常见的用法之一,是从web服务器上读取JSON数据, 将JSON数据转换为JavaScript对象,然后在网页中使用该数据。

JSON.parse(text,【reviver】);
//text:一个有效的JSON字符串。即text=‘JSON对象‘。
//reviver:一个转换结果的函数。转换后的JavaScript对象,在调用每个成员时,都会进入这个reviver函数。

解析数据

//JSON 不能存储 Date 对象。
//如果需要存储 Date 对象,需要将其转换为字符串。
//之后再将字符串转换为 Date 对象。
var text = ‘{ "name":"Runoob", "initDate":"2013-12-14", "site":"www.runoob.com"}‘;
var obj = JSON.parse(text, function (key, value) {
    if (key == "initDate") {
        return new Date(value);
    } else {
        return value;
}});
 
document.getElementById("demo").innerHTML = obj.name + "创建日期:" + obj.initDate;

解析函数

//JSON 不允许包含函数
//但可以将函数作为字符串存储,之后再将字符串转换为函数。
var text = ‘{ "name":"Runoob", "alexa":"function () {return 10000;}", "site":"www.runoob.com"}‘;
var obj = JSON.parse(text);
obj.alexa = eval("(" + obj.alexa + ")");
 
document.getElementById("demo").innerHTML = obj.name + " Alexa 排名:" + obj.alexa();

JavaScript 函数 eval() ,可用于将 JSON 文本转换为 JavaScript 对象。

eval() 函数使用的是 JavaScript 编译器,可解析 JSON 文本,然后生成 JavaScript 对象。

必须把文本包围在括号中,这样才能避免语法错误:

var txt=‘JSON对象文本‘var obj = eval ("(" + txt + ")");

使用 JSON 解析器将 JSON 转换为 JavaScript 对象是更安全的做法。JSON 解析器只能识别 JSON 文本,而不会编译脚本。

在浏览器中,这提供了原生的 JSON 支持,而且 JSON 解析器的速度更快。


评论


亲,登录后才可以留言!