JSON(JavaScript Object Notation)一种简单的数据格式,比xml更轻巧。JSON它是一种轻量级的数据交换格式,非常适合于服务器与 JavaScript 的交互。JSON是JavaScript原生格式,这意味着在JavaScript中处理JSON数据不需要任何特殊的API或工具包。它易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。
二、
JSON
的编写规则
JSON
的规则很简单:对象是一个无序的
“‘
名称
/
值
’
对
”
集合。一个对象以
“{”
(左括号)开始,
“}”
(右括号)结束。每个
“
名称
”
后跟一个
“:”
(冒号);
“‘
名称
/
值
’
对
”
之间使用
“,”
(逗号)分隔
。
规则如下
:
1
、映射用冒号(
“
:)表示。名称
:
值
2
、并列的数据之间用逗号(
“
,
”
)分隔。名称
1:
值
1,
名称
2:
值
2
3
、映射的集合(对象)用大括号(
“{}”
)表示。
{
名称
1:
值
1,
名称
2:
值
2
}
4
、并列数据的集合(数组)用方括号
(“[]”)
表示。
[
{
名称
1:
值
,
名称
2:
值
2},
{
名称
1:
值
,
名称
2:
值
2}
]
5
、元素值可具有的类型:
string, number, object, array, true, false, null
注意:1
、JSON
用冒号(
而不是等号)
来赋值。每一条赋值语句用逗号分开。整
个对象用大括号封装起来。可用大括号分级嵌套数据。
2、
对象描述中存储的数据可以是字符串,数字或者布尔值。对象描述也可存储函数,那就是对象的方法。
三、
JSON
主要有两种数据结构
1
、由
key--value
对组成的数据结构。这种数据结构在不同的语言中有不同的实现
.
例如:在
javascript
中是一个对象
.
而在
java
中是一种
Map
结构
,c
语言中是
struct
,其它的语言中可能为
record
、
hash table
等。
2
、有序集合、这种数据结构在不同语言中可能有
list
、
vertor
、数组和序列等实现。
3
、
javascript
中对这两种方式的语法
1
)用于创建对象的语法
JSON
语法创建对象更像一种
Map
结构
,
它是一种由
key-value
对组成数据结构。
![](http://student.csdn.net/attachment/201103/30/1394199_1301454247949L.jpg)
如图就创建
Object
对象:总是以
{
开始以
}
结束
,
对象的每个属性名与属性值之间用英文的默冒号
(:)
分隔
,
多个属性之间用英文的
(,)
隔开:语法格式如下:
student = {
name:”kouxiaolin”,
age:22,
sex:”
女
”
}
备注:使用
JSON
语法创建对象时
,
属性不仅可是普通的字符,而且可以是任何基本数据类型
,
还可以是函数
,
数组
,
甚至是另外一个用
JSON
语法创建的对象
.
比如:
teacher = {
name:”xiaoqian”,
Student:{
Name:”kouxiaolin”,
Sex:”女”
},
//使用JSON为teacher对象分配一个方法
toString:function(){
alert(“方法的测试…….”);
}
}
2
)用于创建数组的语法
用
JSON
创建数组是分常重要的
![](http://student.csdn.net/attachment/201103/30/1394199_13014542971Blk.jpg)
JSON
创建数组以英文的中括号
[
开始
,
然后以中括号
]
结束
.
其中放入数组的元素
.
元素之间用英文的逗号
,
分开最后的不需要英文逗号。
例如:
Arr = [value1,value2,value3,………]
通过上面的讲解我理解了
JSON
创建
Javascript
对象及数组的方式
,
那么下面我们就来实现
xml
与
Json
之间的转换
.
具体案例实现:
Xml
文件:
<?
xml
version="1.0" encoding="UTF-8"?>
<
cities
>
<
province
name="
北京
"
>
<
city
>
大兴
</
city
>
<
city
>
昌平
</
city
>
<
city
>
朝阳
</
city
>
<
city
>
海淀
</
city
>
<
city
>
东城
</
city
>
<
city
>
西城
</
city
>
</
province
>
<
province
name="
河南
"
>
<
city
>
郑州
</
city
>
<
city
>
安阳
</
city
>
<
city
>
平顶山
</
city
>
<
city
>
开封
</
city
>
<
city
>
商丘
</
city
>
<
city
>
洛阳
</
city
>
</
province
>
</
cities
>
转换成
JSON
:
cities =[
province1:{
name:
"北京",
city[
"大兴","昌平","朝阳","海淀","东城","西城"
]
}
,
province2: {
name:
"
河南
"
,
city[
"
郑州
"
,
"
安阳
"
,
"
平顶山
","
开封
","
商丘
","
洛阳
"
]
}