- 之前一直想寫一篇關於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