(一)JSON简单知识
最近在做几个课程作业,涉及到网络数据传输用到Json,遂记录记录知识。
1.JSON概述
点击打开:JSON官网
- JSON : JavaScript 对象表示法(JavaScript Object Notation)
- JSON是轻量级的文本数据存储和交换格式。类似XML。
- JSON 独立于语言和平台。也就是说在C/C++, C#, Java, JavaScript, Perl, Python等语言中可以使用json语法来进行数据的交换
- JSON 具有自我描述性,更易理解。
- JSON比XML更小、更快、更易解析。因为XML中要使用标记来描述数据,往往需要的标记很多,无疑增加了交换产生的流量等。
如下所示,同样的数据使用JSON(左图)和XML(右图)表示:
2.JSON的两种数据结构
JSON的两种结构:对象(Map)和数组(Array)
2.1 对象(Map)
对象是键值对形式的Map,键和值之间用“ : ”隔开,两个Map之间用“, ”隔开,多个Map被包括在大括号{ }之间形成JSON对象。
- {
- key1:value1,
- key2:value2,
- key3:value3,
- ......
- }
2.2 数组(Array)
数组结构被包括在中括号[ ]之间,其中包括0或多个以” , ”分隔的Map对象。- [
- {
- key1:value1,
- key2:value2
- },
- {
- key3:value3,
- key4:value4
- }
- ]
3.JSON数据示例
①简单json对象
一个json对象,对象包括2个属性,name和age。
- {
- name:"jtzeng",
- age:"21" //注意:与结束括号相邻的键值对后面没有逗号
- }
②简单json数组
一个json数组,数组里面包括2个对象,每个对象包括2个属性。
- [
- {
- "name":"aaa",
- "age":"21"
- },
- {
- "name":"bbb",
- "age":"21"
- }
- ]
③稍微复杂
一个json对象,包括2个属性,data和result,而result对应的是一个json数组,该数组里面包含两个json对象。
- {
- "data":[
- {
- "planning_content":"do homework",
- "planning_date":"2015-12-18",
- "planning_id":1
- },
- {
- "planning_content":"Go shopping.",
- "planning_date":"2015-12-19",
- "planning_id":2
- }
- ],
- "result":"true"
- }
④再复杂点点
一个json对象,包含3个json数组,其中数组programmers和authors包含各一个json对象,而musicians包含两个json对象。
- {
- "programmers":[
- {
- "firstName":"pfirstname",
- "lastName":"plastname",
- "email":"pmail"
- }
- ],
- "authors":[
- {
- "firstName":"afirstname",
- "lastName":"alastname",
- "genre":"agenre"
- }
- ],
- "musicians":[
- {
- "firstName":"mfirstname1",
- "lastName":"mlastname2",
- "instrument":"guitar"
- },
- {
- "firstName":"mfirstname2",
- "lastName":"mlastname2",
- "instrument":"piano"
- }
- ]
- }
⑤相对复杂
一个json数组,里面存了一个JSON对象,这个对象里面呢只有一个institute的对象,该对象下有name和grade属性,grade对应一个json数组,该数组下面有三个对象。
- [
- {
- "institute":{
- "name":"Software Institute",
- "grade":[
- {
- "name":"freshman",
- "class":[
- {
- "no.":1,
- "students":61
- },
- {
- "no.":2,
- "students":62
- },
- {
- "no.":3,
- "students":63
- }
- ]
- },
- {
- "name":"sophomore",
- "class":[
- {
- "no.":1,
- "students":51
- },
- {
- "no.":2,
- "students":52
- },
- {
- "no.":3,
- "students":53
- }
- ]
- },
- {
- "name":"junior",
- "class":[
- {
- "no.":1,
- "students":41
- },
- {
- "no.":2,
- "students":42
- },
- {
- "no.":3,
- "students":43
- }
- ]
- }
- ]
- }
- }
- ]
后面将分别记录用org.json、json-lib和Gson包解析json数据。
原文地址:http://blog.csdn.net/Zen99T/article/details/50351589
原文地址:http://blog.csdn.net/Zen99T/article/details/50351589