Android基礎——JSON資料的全方位解析

來源:互聯網
上載者:User

標籤:.com   sdn   速度   分析   系統   浮點   json對象   net   key   

 

本篇文章包括以下內容:

  • JSON是什麼
  • JSONObject的解析和儲存
  • JSONObject的解析和儲存(抽象)
  • JSONArray的解析和儲存
  • 類比周邊加油站JSON資料實戰

JSON:JavaScript對象標記法(JavaScript Object Notation)

  • JSON是儲存和交換文本資訊的文法
  • JSON是輕量級的文本資料交換格式
  • JSON獨立於語言和平台
  • JSON具有自我描述性,更易理解

類似XML,比XML更小、更快、更易解析

  • 沒有結束標籤
  • 更短
  • 讀寫的速度更快
  • 使用數組
  • 不使用保留字

JSON文法是JavaScript對象標記法文法的子集

  • 資料在成對的名稱和數值中
  • 資料由逗號分割
  • 花括弧儲存對象
  • 方括弧儲存資料

JSON值可以是

  • 數字(整數或浮點數)
  • 字串(在雙引號中)
  • 邏輯值(true或false)
  • 數組(在方括弧中)
  • 對象(在花括弧中)
  • null

JSONObject資料是用key-value來儲存的,中間使用冒號隔開,外層的花括弧表示一個對象

首先建立一個儲存資料的Bean類

下面我們使用將伺服器擷取的JSON資料放進一個JSON對象中,擷取其對象中的值

我們會碰到在一個JSON中嵌套有其他JSON對象,而這個嵌套的JSON對象中可以抽象出共同的屬性,看例子

這個時候我們就不用建立兩個對象了,建立一個對象抽取他們的屬性即可

首先建立一個儲存資料的Bean類

然後我們解析並儲存

通過遍曆JSONArray,剩下的跟JSONObject一樣,

這裡以周邊加油站資料為例,其解析步驟有

  • 分析資料中的成員變數(花括弧為對象,方括弧為數組,使用List儲存數組)
  • 根據分析後的結果,建立對應的對象
  • 解析JSON資料、儲存JSON資料

大家可以嘗試一下自己寫解析,發現哪裡不對時,直接運行程式,系統會自動給你提示哪一行解析出錯的

一、分析資料中的成員變數

在JSON中,只有兩種文法,JSONObject(花括弧內)和JSONArray(方括弧內)

  • JSONObject:可以理解為一個Map集合,通過get擷取value
  • JSONArray:可以理解為一個數組,通過迴圈擷取對應的JSONObject

從上面的資料可以發現其中有五個JSON對象,一個JSON數組,從外到裡分析

對象1~4:

對象5:在最後面

二、根據分析後的結果,建立對應的對象(按循序從1~5)

在JSONObject中,左邊是屬性,右邊是值

如果右邊的值為一個JSONArray,則在對象中使用List< Object>來儲存,簡單的說就是對象中的List嵌套另一個對象

記住:花括弧用對象,方括弧用集合

根據上面的分析,建立第一個對象

建立第二個對象

建立第三個對象

建立第四個對象

建立第五個對象

三、解析JSON資料、儲存JSON資料

由於資料對象是一層嵌套一層的,這個解析思想跟樹的遍曆是一個道理,中老年服裝從外層->內層->外層,所以我們在解析內層的時候是需要邊解析邊儲存我們的資料

資料的解析和儲存

由於我們第四個對象是嵌套在第三個對象數組中的,所以在裡面再嵌套一層迴圈

由於第四個對象是同一性質的屬性,所以我們抽象成一個屬性為type和price的對象,其key是不確定的,需要自己通過keys遍曆來擷取value

接著我們輸出我們解析的結果

Android基礎——JSON資料的全方位解析

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.