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}