- 之前一直想写一篇关于json的专题,时间原因,最近碰到json解析,发现网上资料太繁杂,现在自己整理,以下暂时用import net.sf.json.JSONObject,后续讨论谷歌和阿里的json工具(转载注明出处,谢谢!)
我对json的理解
-
我看了json资料,讲的太官方,不易理解。首先我们对于任何一种json,不管多么复杂,数据量多大,先别慌,你最终想要的不就是json里面的键值对么,那就记住:json就是数组对象和对像的组合
-
怎么理解呢?
-
{}看到这个括号,那么里面就是对象;[]看到这个就是数组对象。当然对象里面也会有数组对象,数组对象里面也会有对象;
-
好了,现在只需要记住这两个符号,一切迎刃而解
------------------------我是分界线?-------------------
对象
例子1:{“status”:0,“message”:“query ok”}
- 一个对象,即一个{}
- 首先你要看是这个json里面有什么符号,这里是不是只有一个{},那么就是一个对象,步骤一是必须的
------------------------我是分界线?-------------------
例子2: {“status”:0,“message”:“query ok”,“reault”:{“address”:“xxx”}}
-
对象里面有对象,即{ { } }
-
总结,那么如果对象里面有很多个对象呢?比如三个括号{ { { } } } 是不是以此类推,先第一步,然后根据键得到对象或者得到你想要的值
------------------------我是分界线?-------------------
-
我们继续
例子3:{“day1”:“work”,“day2”:26,“day3”:[{“key”:3}]}
- 对象里面有数组对象,如{ [ ] }
- 解析
------------------------我是分界线?-------------------
数组对象
例子1:[{“day1”:“work”,“day2”:26},{“day1”:123,“day2”:26}]
- 数组对象里面有对象[{},{}]
例子2:[[{“day1”:“work”,“day2”:26}],{“day1”:123,“day5”:26}]
-
数组对象里面既有对象又有数组对象, [ [ { } ] , { } ]
------------------------我是分界线?-------------------
总结
- 刚开始碰到{}就是JSONObject.fromObject(json)嘛,碰到在对象/数组对象里面碰到{}就getJSONObject()
- 刚开始碰到[]就是JSONArray.fromObject(json)嘛,碰到在对象/数组对象里面碰到[]就getJSONArray()
- 一层一层去分析就能得到想要的数据
- end