Android開發中如何解析Json

    解析Jsonjavascript

  有了請求,天然會有響應,那咱們該如何解析服務端響應返回給咱們的Json數據呢?java

  瞭解什麼是Jsonandroid

  JSONJavaScript object notation)是一種輕量級的數據交換格式。它是基於ECMAscript的一個子集。JSON採用徹底獨立於語言的文本格式,可是也是用的相似於c語言家族的習慣(包括cc++c#javajavascriptperlPython等)。這些特性是JSON成爲理想的數據交換語言。易於人閱讀和編寫,同時也易於機器解析和生成(通常用於提高網絡傳輸速率)。c++

  JSON的語法規則json

  JSONJavaScript對象表示語法的子集。c#

  1) 數據在鍵值對中。數組

  2) 數據由逗號分隔服務器

  3) 花括號保存對象網絡

  4) 方括號保存數組spa

  JSON的值能夠是?

  1) 數字(整數或浮點數)

  2) 字符串(在雙引號中)

  3) 邏輯值(truefalse

  4) 數組(在方括號中)

  5) 對象(在花括號中)

  6) null

  代碼演示,如何解析JSON格式數據?

  1) 使用以前演示HttpGetHttpPost時,已經寫好的能夠獲得從服務器返回的JSON格式的字符串的代碼。

  調用parseData()方法,傳遞參數result。以下圖:

    獲得的須要解析的JSON數據以下圖所示:

  2) 根據分析JSON數據的格式,這裏能夠看出JSON格式解析到最裏層,獲得的是一組一組的對象,對象裏面包含namesex屬性。

  因此,在這裏構造出一個對應該對象的實體類,並提供對外訪問的gettersetter方法。

  3) 這裏咱們重寫tostring()方法,經過調用此方法,能夠打印出該對象的name值和sex值,這樣作是爲了待會兒打印出對象的屬性值,展現效果。

  4) 因爲獲得的最裏層的member對象的集合,這裏採用list包裝。

  因爲這裏提供的這段JSON格式的數據最外層是對象包裝,因此能夠採用sun公司原生提供的JSONObject類,傳入對象格式的JSON數據構造一個JOSNObject的對象。

  再分析裏層的:是一個鍵值對,鍵名爲list,值是一個數組,因此咱們能夠經過鍵名獲得這個數組。

  調用JSONObject.getJSONArray()方法,傳入鍵名能夠獲得一個JSONArray對象。

  5) 獲得了JSONArray數組以後,就能夠開始使用for循環遍歷數組了,因爲數組的每一項都是一個對象,因此調用JSONArray.getJSONObject(下標)方法,傳入下標,便可獲得最裏層的JSON格式的對象。

  以後,new一個member的對象,設置membername值和sex值,值能夠從最裏層的JSON對象經過getString()方法,傳入鍵名獲得。

  最後,將member對象添加到事先構建好的List列表裏面便可。

  6) 固然,最後只須要打印出member的屬性值,便可檢驗是否成功解析JSON數據。這裏調用以前重寫的toString()方法。

  7) 最後看看,運行成功的結果吧!成功的打印出了namesex屬性值。

 

原文連接:http://www.maiziedu.com/wiki/android/json/

相關文章
相關標籤/搜索