您好,登錄后才能下訂單哦!
前幾天做項(xiàng)目遇到了個(gè)關(guān)于服務(wù)器返回的JSONObject解析的問題,想記錄一下。
關(guān)于Json的解析一般用2種方法,第一是下載GSON的JAR包,采用GSON解析,這種解析雖然方便使用,但是對(duì)于一些特殊格式的Json字符串是行不通的。而且JavaBean也寫不出來。先上圖:
對(duì)于這樣的對(duì)象包對(duì)象的形式,不適合寫傳統(tǒng)的JavaBean,需要采用手動(dòng)解析的形式。手動(dòng)解析非常強(qiáng)大,基本可以對(duì)各種格式的Json字符串進(jìn)行解析。
下面是我解析的類:
public class OriginalRankBean { public String author; public String play; public String pic; public String title; public String video_review; public List<OriginalRankBean> parse(JSONObject obj) { if (obj == null) { return null; } List<OriginalRankBean> datalist=new ArrayList<OriginalRankBean>(); obj = obj.optJSONObject("list"); for (int i = 0; i <obj.length(); i++) { if(obj.has(i+"")){ OriginalRankBean rank = new OriginalRankBean(); JSONObject optJSONObject = obj.optJSONObject(i + ""); rank.author = optJSONObject.optString("author"); rank.play = optJSONObject.optString("comment"); rank.pic = optJSONObject.optString("pic"); rank.title = optJSONObject.optString("title"); rank.video_review = optJSONObject.optString("video_review"); datalist.add(rank); } } return datalist; } }
在手動(dòng)解析的javaBean中寫入方法,通過調(diào)用方法,直接返回一個(gè)集合。在外面進(jìn)行方法的調(diào)用并傳入JSONObject,再創(chuàng)建一個(gè)集合進(jìn)行接收就可以了。
注意:這里用opt可以防止報(bào)異常,因?yàn)閛pt內(nèi)部已經(jīng)做了判斷了,而使用get的形式需要拋異常。
在解析過程中,只拿自己需要的數(shù)據(jù)就可以了。
注意上來先判空,如果請求回來的JSONObject是空的話,那就沒必要解析了,直接return,去檢查url和請求網(wǎng)絡(luò)的方法是否出現(xiàn)了問題。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。