JSON的规则很简单:对象是一个无序的“‘名称:值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’对”之间使用“,”(逗号)分隔。
 
规则如下:
1、映射用冒号(:)表示。如-> 名称:值
 
2、并列的数据之间用逗号(“,”)分隔。如-> 名称1:值1,名称2:值2
 
3、映射的集合(对象)用大括号(“{}”)表示。此格式对应Java中的JsonObject。标准的json可以对应一个JsonObject
下面值1,值2可以是“4”中的格式JsonArray {name:JsonArray,name:JsonArray,name:JsonArray}

{

名称1:值,

名称2:值2

}

此格式对应Java中的JsonArray

[

{名称1:值,名称2:值2},

{名称1:值,名称2:值2}

]

注意:json是一种格式,传输的过程中是String类型的,需要使用对应的方法把其转化成JsonObject对象或JsonArray对象。
5、元素值可具有的类型:string,number, object, array, true, false, null
注意:1、JSON 用冒号(而不是等号)来赋值。每一条赋值语句用逗号分开。整个对象用大括号封装起来。可用大括号分级嵌套数据。
      2、对象描述中存储的数据可以是字符串,数字或者布尔值。对象描述也可存储函数,那就是对象的方法。
 
6、JSON主要有两种数据结构
(1)由key–value对组成的数据结构。这种数据结构在不同的语言中有不同的实现.
例如:在javascript中是一个对象.而在java中是一种Map结构,c语言中是struct,其它的语言中可能为record、 hash table 等。
(2)有序集合、这种数据结构在不同语言中可能有list、vertor、数组和序列等实现。
7、前台的Data 格式相当于Java数组 用“[]” 括起来表示
[值1,值2,值3]
一般是转换传输过程
-->List \[]
-->JSONObject \{"keyword":"Smoking","keycount":475}
-->JSONArray \[{"keyword":"Smoking","keycount":475},{"keyword":"Nicotine","keycount":263}]
-->String \"[{"keyword":"Smoking","keycount":475},{"keyword":"Nicotine","keycount":263}]" 
-->传输   
-->前台得到String
-->解析成Object数组 JSON.parse(json.retMsg) \[object Object],[object Object]


8、List 和Data的格式相同,通过访问索引的形式进行访问。 [值1,值2,值3]

9、Map 键、值的形式存储  输出时用“=”链接 {key1=value, key2=value}



记忆方式:List 对应 JSONArray,Map对应JSONObject。

只要搞懂每一个的数据格式,操作起来就非常简单了。


更多请看这里 JSON