json入门

注意事项:

  • json中只能使用双引号;
  • json数据的值可以不能是undefined;
  • 不能存储Date类型的数据,要把它转为字符串,再转回来
var text = '{ "name":"Runoob", "initDate":"2013-12-14", "site":"www.runoob.com"}';
var obj = JSON.parse(text);
obj.initDate = new Date(obj.initDate);
 
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();
  • json.parse(a,b)  将json字符串转化为json对象(ie8及以上)
  • json.stringify()  将json对象转化为字符串(ie8及以上)

(JSON.stringify() 会将所有日期转换为字符串;JSON 不允许包含函数,JSON.stringify() 会删除 JavaScript 对象的函数,包括 key 和 value,我们可以在执行 JSON.stringify() 函数前将函数转换为字符串来避免以上问题的发生------不建议在 JSON 中使用函数。)

  • 由于 JSON 语法是 JavaScript 语法的子集,JavaScript 函数 eval() 可用于将 JSON 文本转换为 JavaScript 对象。

    eval() 函数使用的是 JavaScript 编译器,可解析 JSON 文本,然后生成 JavaScript 对象。必须把文本包围在括号中,这样才能避免语法错误:

    var obj = eval ("(" + txt + ")");
    var txt = '{ "sites" : [' +
    '{ "name":"菜鸟教程" , "url":"www.runoob.com" },' +
    '{ "name":"google" , "url":"www.google.com" },' +
    '{ "name":"微博" , "url":"www.weibo.com" } ]}';
     
    var obj = eval ("(" + txt + ")");
     
    document.getElementById("name").innerHTML=obj.sites[0].name 
    document.getElementById("url").innerHTML=obj.sites[0].url
原文地址:https://www.cnblogs.com/cui-ting/p/11220455.html