本文转载至 http://www.liaoxuefeng.com/article/0013738777878478fdedd852531483bac1e4846eb7beb89000
关于JSON的官方教程http://json.org/json-zh.html
JSON即JavaScript Object Notation,它是一种轻量级的数据交换格式,非常适合服务器与JavaScript的交互。JSON为Web应用开发者提供了另一种数据交换格式。同XML或HTML片段相比,JSON提供了更好的简单性和灵活性。和XML一样,JSON也是基于纯文本的数据格式。由于JSON天生是为JavaScript准备的,因此,JSON的数据格式非常简单,你可以用JSON传输一个简单的String,Number,Boolean,也可以传输一个数组,或者一个复杂的Object对象。
(1)String:除了字符",\,/和一些控制符(\b,\f,\n,\r,\t)需要编码外,其他Unicode字符可以直接输出。直接加双引号输出
<span style="font-size:12px;">“abc”</span>
(2)Number:可以根据整型或浮点数表示如下
<span style="font-size:12px;">12345(整数)
-3.9e10(浮点数)</span>
(3)Boolean:表示为true或false。此外,JavaScript中的null被表示为null,注意,true、false和null都没有双引号,否则将被视为一个String。
(4)数组:使用[]包含所有元素,每个元素用逗号分隔,元素可以是任意的Value。例如,以下数组包含了一个String,Number,Boolean和一个null:
<span style="font-size:12px;">["abc",12345,false,null]</span>
(5)对象:用{}包含一系列无序的Key-Value键值对表示的,实际上此处的Object相当于Java中的Map,而不是Java的Class。注意Key只能用String表示。
{
"city" : "Beijing",
"street" : "Chaoyang Road",
"postcode" : 100025
}
其中Value也可以是另一个Object或者数组,因此,复杂的Object可以嵌套表示,例如,一个Person对象包含name和address对象,可以表示如下:
{
"name" : "Michael",
"address" : {
"city" : "Beijing",
"street" : "Chaoyang Road",
"postcode" : 100025
}
}