json基础

1 xml缺点

用xml表示一个对象,数据存储效率低

<person>
<firstName>Morra<firstName>
<lastName>Doe<lastName>
<age>30</age>
</person>

xml的解析过程如下,过程相当繁琐:

var personElement = document.querySelector("person");
var firstName = personElement.querySelector("firstName").innerHTML;
var lastName = personElement.querySelector("lastName").innerHTML;
var age = personElement.querySelector("age").innerHTML;
 
var person = {
    firstName:firstName,
    lastName:lastName,
    age:age,
};

xml缺点:

  • 数据结构占比比较大,数据存储效率低
  • xml阅读、解析、与生成数据需要繁琐的代码,代码编写效率低。

2 json基础

由于xml的以上缺点,json开始流行起来。JSON是一种数据格式,不是语言,它只定义对象的结构和数据。

字符串必须用双引号,数字和布尔值不变。

2.1 对象

js中的对象:

var person = {
    firstName:"Morra",
    lastName:"Doe",
    age:30
};

JSON写法:

{
    "firstName":"Morra",      //json中属性名也是放在双引号里的
    "lastName":"Doe",
    "age":30
}                            //也没有分号

也可以嵌套:

 {
    "firstName": "Morra",
    "lastName": "Doe",
    "age": 30,
    "address": {
        "country": "China",
        "city": "somewhere"
    }
}

2.2 数组

js中的数组:

var values = ["john", 30, false, null];

json数组格式:

["john", 30, false, null]

2.3 序列化与反序列化

需要用到js里的JSON对象,它可以串行化js对象,也能解析json对象。

var person = {
    firstName:"Morra",
    lastName:"Doe",
    age:30
};
 
var json =JSON.stringify(person);  //序列化
console.log(json);  //{"firstName":"Morra","lastName":"Doe","age":30}
 
var personData = JSON.parse(json);   //解析json,反序列化
console.log(personData); //Object {firstName: "Morra", lastName: "Doe", age: 30}
posted @ 2016-12-25 17:23  morra  阅读(223)  评论(0编辑  收藏  举报