- 直接用 JSONObject: 對(duì)象 ;JSONArray:數(shù)組 ;JSONStringer:String對(duì)象沫勿。這樣一層一層的解析挨约。
- 用開源庫(kù),我采用的是google提供的GSON产雹,這個(gè)方法好诫惭,前提得按照json的結(jié)構(gòu)把實(shí)體類寫好。寫好之后就完美了蔓挖。
- 在as中夕土,按照project structure-> dependencies->點(diǎn)擊右邊的+號(hào)->library dependency->輸入gson∥僚校基本點(diǎn)擊第一條選項(xiàng)怨绣,然后等他創(chuàng)建完,就可以使用GSON開源庫(kù)了拷获。
- 然后就是創(chuàng)建相對(duì)應(yīng)的實(shí)體類了篮撑,我用過網(wǎng)站和插件,都好匆瓜,不過個(gè)人感覺插件更優(yōu)赢笨,如果結(jié)構(gòu)比較簡(jiǎn)單,也可以自己寫驮吱。附上網(wǎng)站鏈接除了生成實(shí)體類還能檢查json文本格式的網(wǎng)站茧妒。as插件就是GsonfFormat,可以自己選擇生成的哪些對(duì)象左冬。但是有時(shí)候json里命名和我們自己的變量命名有差別桐筏,這就要使用到屬性重命名 @SerializedName ,如
"cond":{"txt":"多云"}
"cond":{"txt_d":"晴"}
這時(shí)候 @SerializedName 還有一個(gè)格式又碌,這時(shí)候mTxt可以被當(dāng)作txt或txt_d了九昧,具體是誰(shuí)取決于遇到誰(shuí)了绊袋。
@SerializedName(value = "txt", alternate = {"txt_d"})
public String mTxt;
然后就是解析了毕匀,fromJson里第一個(gè)是需要解析的json文本,String格式癌别,后面是實(shí)體類皂岔,這樣之后json里的字段就和實(shí)體類里面的變量和其他類一一對(duì)應(yīng)了。
Gson gson = new Gson();
CityRoot cityRoot = gson.fromJson(resultCity, CityRoot.class);
然后想怎么操作從網(wǎng)絡(luò)上獲取的資源就任我們了展姐。