解析Jsonjavascript
有了請求,天然會有響應,那咱們該如何解析服務端響應返回給咱們的Json數據呢?java
瞭解什麼是Jsonandroid
JSON(JavaScript object notation)是一種輕量級的數據交換格式。它是基於ECMAscript的一個子集。JSON採用徹底獨立於語言的文本格式,可是也是用的相似於c語言家族的習慣(包括c、c++、c#、java、javascript、perl、Python等)。這些特性是JSON成爲理想的數據交換語言。易於人閱讀和編寫,同時也易於機器解析和生成(通常用於提高網絡傳輸速率)。c++
JSON的語法規則json
JSON是JavaScript對象表示語法的子集。c#
1) 數據在鍵值對中。數組
2) 數據由逗號分隔服務器
3) 花括號保存對象網絡
4) 方括號保存數組spa
JSON的值能夠是?
1) 數字(整數或浮點數)
2) 字符串(在雙引號中)
3) 邏輯值(true或false)
4) 數組(在方括號中)
5) 對象(在花括號中)
6) null
代碼演示,如何解析JSON格式數據?
1) 使用以前演示HttpGet和HttpPost時,已經寫好的能夠獲得從服務器返回的JSON格式的字符串的代碼。
調用parseData()方法,傳遞參數result。以下圖:
獲得的須要解析的JSON數據以下圖所示:
2) 根據分析JSON數據的格式,這裏能夠看出JSON格式解析到最裏層,獲得的是一組一組的對象,對象裏面包含name和sex屬性。
因此,在這裏構造出一個對應該對象的實體類,並提供對外訪問的getter和setter方法。
3) 這裏咱們重寫tostring()方法,經過調用此方法,能夠打印出該對象的name值和sex值,這樣作是爲了待會兒打印出對象的屬性值,展現效果。
4) 因爲獲得的最裏層的member對象的集合,這裏採用list包裝。
因爲這裏提供的這段JSON格式的數據最外層是對象包裝,因此能夠採用sun公司原生提供的JSONObject類,傳入對象格式的JSON數據構造一個JOSNObject的對象。
再分析裏層的:是一個鍵值對,鍵名爲list,值是一個數組,因此咱們能夠經過鍵名獲得這個數組。
調用JSONObject.getJSONArray()方法,傳入鍵名能夠獲得一個JSONArray對象。
5) 獲得了JSONArray數組以後,就能夠開始使用for循環遍歷數組了,因爲數組的每一項都是一個對象,因此調用JSONArray.getJSONObject(下標)方法,傳入下標,便可獲得最裏層的JSON格式的對象。
以後,new一個member的對象,設置member的name值和sex值,值能夠從最裏層的JSON對象經過getString()方法,傳入鍵名獲得。
最後,將member對象添加到事先構建好的List列表裏面便可。
6) 固然,最後只須要打印出member的屬性值,便可檢驗是否成功解析JSON數據。這裏調用以前重寫的toString()方法。
7) 最後看看,運行成功的結果吧!成功的打印出了name和sex屬性值。