以后这种总结性的文章,我都会先给出结论,然后罗列基础知识进一步解释结论。
conclusion:XML和JSON的区别
1) 数据体积方面。
JSON相对于XML来讲,数据的体积小,传递的速度更快些。
2)数据交互方面。
JSON与JavaScript的交互更加方便,更容易解析处理,更好的数据交互。
3)数据描述方面。
JSON对数据的描述性比XML较差。
4)传输速度方面。
JSON的速度要远远快于XML。
详细解释
XML存储数据的弊端:
1)太多表示结构的标签造成字节浪费;
2)XML的解析需要额外代码,并且不同的XML文档需要的解析代码不同,越复杂的文档,解析代码也越复杂;把来自JS的数据序列化为XML数据更为复杂,而且不能出错;同时,串行化代码也是不可重用的。
Example:
<person>
<firstName>John</firstName>
<lastName>Doe</lastName>
<age>30</age>
</person>
解析:
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
};
JSON
JSON只存储有用信息,没有标签,因此比XML体积小,这加快了传输速度;
JS数据的序列化和JSON解析很简单,主流浏览器支持JSON.stringify()和JSON.parse()方法。
Example:
<script type="text/javascript">
var person = {
firstName: "John",
lastName: "Doe",
age: 30
};
var json = JSON.stringify(person);//序列化
alert(json);//{"firstName":"John","lastName":"Doe","age":30}
var person=JSON.parse(json);//JSON解析
alert(person.firstName);//John
</script>
补充:
JSON一般用来表示三种数据:数组、对象、基本数据类型。
基本数据类型:null/false/true/number/string,和JS的区别在于string必须用双引号包围,其他三种数据类型和JS一样不用引号。
对象:
var person = {
firstName: "John",
lastName: "Doe",
age: 30
};
表示成JSON:
{
"firstName": "John",
"lastName": "Doe",
"age": 30
}
数组:
var values = ["John", 30, false, null];
表示成JSON:
["John", 30, false, null]
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。