其他分享
首页 > 其他分享> > JSON

JSON

作者:互联网

JSON是存储和交换文本信息的语法,类似于XML。JSON比XML更小、更快、更易解析

 

JSON 与 XML 的相同之处:

JSON 与 XML 的不同之处:

 

最大的不同是:XML 需要使用 XML 解析器来解析,JSON 可以使用标准的 JavaScript 函数来解析。

 

为什么 JSON 比 XML 更好?

XML 比 JSON 更难解析。

JSON 可以直接使用现有的 JavaScript 对象解析。

针对 AJAX 应用,JSON 比 XML 数据加载更快,而且更简单:

使用 XML

使用 JSON


 

JSON对象包含多个key/value键值对。key必须是字符串,value可以是合法的JSON数据类型(字符串, 数字, 对象, 数组, 布尔值或 null)

可以使用点号(.)来访问对象的值

var myObj, x;
myObj = { "name":"runoob", "alexa":10000, "site":null };
x = myObj.name;

也可以使用中括号([])来访问对象的值

var myObj, x;
myObj = { "name":"runoob", "alexa":10000, "site":null };
x = myObj["name"];

 

使用for-in来循环对象的属性

var myObj = { "name":"runoob", "alexa":10000, "site":null };
for (x in myObj) {
   console.log(x)
  console.log(myObj[x]) }

使用for-in来循环访问数组

{
"name":"网站",
"num":3,
"sites":[ "Google", "Runoob", "Taobao" ]
}

for (i in myObj.sites) {
    x += myObj.sites[i] + "<br>";
}

 

删除对象属性

delete myObj.sites.site1;

delete myObj.sites["site1"]

delete运算符并不是彻底删除元素,而是删除它的值,但仍会保留空间。delete只会将该值置为undefined,而不会影响数组长度。


 

JSON.Parse()

将JSON数据转为JavaScript对象

语法:JSON.parse(text[, reviver])

 

JSON不能存储Date对象,如果需要存储Date对象,需要将其转换为字符串,之后再将字符串转为Date对象

var text = '{ "name":"Runoob", "initDate":"2013-12-14", "site":"www.runoob.com"}';
var obj = JSON.parse(text);
obj.initDate = new Date(obj.initDate);

可以启用JSON.parse的第二个参数reviver

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;
}});

 

JSON不允许包含函数,但可以将函数作为字符串存储,之后再将字符串转为函数

var text = '{ "name":"Runoob", "alexa":"function () {return 10000;}", "site":"www.runoob.com"}';
var obj = JSON.parse(text);
obj.alexa = eval("(" + obj.alexa + ")");//包在括号里,避免出现语法错误

          eval() 函数计算或执行参数。

          如果参数是表达式,则 eval() 计算表达式。如果参数是一个或多个 JavaScript 语句,则 eval() 执行这些语句


 

JSON.stringify()

使用该方法将javaScript对象转为字符串

JSON不能存储Date对象

JSON.stringify()会将所有日期转换为字符串

 

JSON 不允许包含函数,JSON.stringify() 会删除 JavaScript 对象的函数,包括 key 和 value

我们可以在执行 JSON.stringify() 函数前将函数转换为字符串来避免以上问题的发生:

(尽管如此,还是不建议再JSON中使用函数)

var obj = { "name":"Runoob", "alexa":function () {return 10000;}, "site":"www.runoob.com"};
obj.alexa = obj.alexa.toString();
var myJSON = JSON.stringify(obj);

 

标签:XML,obj,var,字符串,JSON,myObj
来源: https://www.cnblogs.com/joliezz/p/16092742.html