關於解析json 使用第三方庫Gson

2021-07-28 07:12:46 字數 1886 閱讀 4929

解析json是我們必備的技能之一,解析json可以使用原生api,也可以使用第三方庫。前面我們有說過使用原生api,不過在我們解析比較複雜的json資料的時候如果使用原生api會顯得很麻煩。因為你要一層一層的往裡解析,資料多的話可以嘗試使用第三方庫gson來解析。

使用gson解析json資料

這次解析的是一段天氣預報

,,,

,,],"weather_data":[,,,]}]}

我們使用gson解析,首先需要去建立一層一層的實體類。

第一層的實體類,這一層的實體類主要是對應json資料最外層的資料(建立實體類的時候,定義的變數的名稱一定要和json資料的相同)

public class one 

public void setstatus(string status)

public string getdate()

public void setdate(string date)

public listgetresults()

public void setresults(listresults)

}

第二層實體類

public  class lea 

public void setweather_data(listweather_data)

public string getpm25()

public void setpm25(string pm25)

public string getcurrentcity()

public void setcurrentcity(string currentcity)

}

第三層

public class wea 

public void setwind(string wind)

public string getweather()

public void setweather(string weather)

public string getdaypictureurl()

public void setdaypictureurl(string daypictureurl)

public string getdate()

public void setdate(string date)

public string gettemperature()

public void settemperature(string temperature)

}

建立了實體類之後我們就可以直接使用gson來解析了,解析之前一定要確定自己匯入了gson的jar包。

我們可以先嘗試解析最外層的資料,使用gson解析資料,主要是呼叫已經建立好的實體類的get()方法就可以了。

gson gson=new gson();//建立gson

//呼叫gson.fromjson方法,這裡面的s是你要解析的json資料,one.class是最外層的實體類

one one=gson.fromjson(s,one.class);

//想呼叫最外層的資料的話,可以直接呼叫實體類的裡面封裝好的方法

tv2.settext(one.getresults().get(0).getcurrentcity());

tv3.settext("pm:"+one.getresults().get(0).getpm25());

我們解析更深層的資料。
如果我們想要解析陣列的話,需要使用到迴圈。for(int i=0;i

關於第三方庫

1.reachability 檢測網路連線 2.mbprogresshud 提示效果 支援各種狀態載入的提示效果,以及帶進度的提示效果。3.ios image filters 提供多種濾鏡效果。4.rncryptor 提供aes加密方法。5.cocoaasyncsocket cocoaasyncso...

使用json心得(第三方庫jackson)

collectionpersonresult new arraylist 將要傳送給前台的資料放入map集合去 mapmap new hashmap map.put person personresult map.put departmentcount 50 定義乙個totalresult物件,封裝...

json解析的常用方式(不使用第三方庫)

解析json資料有很多種方法,可以使用官方提供的jsonobject,也可以使用谷歌的開源庫gson,另外,一些第三方的開源庫如jackson,fastjson等也非常不錯。接下來主要學習前兩種解析方式的用法。jsonobject json資料 private void parsejsonwithj...