Android開發中如何解析Json


    解析Json

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

  了解什么是Json

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

  JSON的語法規則

  JSONJavaScript對象表示語法的子集。

  1) 數據在鍵值對中。

  2) 數據由逗號分隔

  3) 花括號保存對象

  4) 方括號保存數組

  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/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM