一、JSON
JSON的全称是 JavaScript Object Notation (JS对象标记),是一种轻量级的数据交换格式。经常用在前台和后端做信息交互。
其采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。json只是字符串!
语法
键值对:{"键":"值"}
- 对象表示为键值对
- 多个数据之间用逗号分隔,
- 花括号保存对象{}
- 方括号保存数组[]
2、XML
可扩展标记语言
3、JSON和XML的比较
举一个同样的例子,看看在不同的方式下面,实现方式有何不同。
同样的例子之XML
<?xml version="1.0" encoding="utf-8"?>
<country>
<name>中国</name>
<province>
<name>黑龙江</name>
<citys>
<city>哈尔滨</city>
<city>大庆</city>
</citys>
</province>
<province>
<name>广东</name>
<citys>
<city>广州</city>
<city>深圳</city>
<city>珠海</city>
</citys>
</province>
<province>
<name>台湾</name>
<citys>
<city>台北</city>
<city>高雄</city>
</citys>
</province>
<province>
<name>新疆</name>
<citys>
<city>乌鲁木齐</city>
</citys>
</province>
</country>
同样的例子之JSON
{
"name": "中国",
"province": [
{
"name": "黑龙江",
"citys": {
"city": [
"哈尔滨",
"大庆"
]
}
},
{
"name": "广东",
"citys": {
"city": [
"广州",
"深圳",
"珠海"
]
}
},
{
"name": "台湾",
"citys": {
"city": [
"台北",
"高雄"
]
}
},
{
"name": "新疆",
"citys": {
"city": [
"乌鲁木齐"
]
}
}
]
}
由上可见,JSON的表达方式比xml简洁很多。最重要的是,JSON没有了专门的DOM解析。JSON中的数据只要符合JavaScript的声明规范,JavaScrip就会自动解析。Ajax中使用JSON的基本方法是,前台载入后台声明的Javascript对象的字符串。然后,用eval()方法来将它转为实际的对象,最后通过 DHTML更新页面信息。
json的优点:
1、JSON不仅减少了解析XML解析带来的性能问题和兼容性问题;而且对于Javascript来说非常容易使用,json可以很方便的通过遍历数组,以及访问对象属性来获取数据。
2、其可读性也不错,基本具备了结构化数据的性质。
3、JSON的另外一个优势是"跨域性",大部分的编程语言都支持json,从而可以在不同平台间进行数据交换。
2、其可读性也不错,基本具备了结构化数据的性质。
3、JSON的另外一个优势是"跨域性",大部分的编程语言都支持json,从而可以在不同平台间进行数据交换。
JSON 和 XML 优缺点的比较
1. 在可读性方面,JSON和XML的可读性不相上下,一边是建议的语法,一边是规范的标签形式
2. 在可扩展性方面,XML天生有很好的扩展性,JSON当然也有,没有什么是XML能扩展,JSON不能的。
3. 在编码难度方面,XML有丰富的编码工具,比如Dom4j、JDom等,JSON也有json.org提供的工具,但是JSON的编码明显比XML容易许多,即使不借助工具也能写出JSON的代码,可是要写好XML就不太容易了。
4. 在解码难度方面,XML的解析得考虑子节点父节点,让人头昏眼花,而JSON的解析难度几乎为0。
5. 在流行度方面,XML已经被业界广泛的使用,而JSON才刚刚开始,但是在Ajax这个特定的领域,未来的发展一定是XML让位于JSON。到时Ajax应该变成Ajaj(AsynchronousJavascript and JSON)了。
6. JSON和XML同样拥有丰富的解析手段。
7. JSON相对于XML来讲,数据的体积小。
8. JSON与JavaScript的交互更加方便。
9. JSON对数据的描述性比XML较差。
10. JSON的速度要远远快于XML。
JSON | XML | |
---|---|---|
可读性 | 建议的语法 | 规范的标签 |