Gson 解析中json字符串數(shù)組轉換為對象list的方法

使用Gson將json格式字符串數(shù)據(jù)轉化為對象list的情況中道媚,經(jīng)常出現(xiàn)json格式字符串參數(shù)個數(shù)與要轉換的類對象不匹配情況跺讯,如類對象定義有多個參數(shù)碟绑,但是json格式字符串只有其中的一部分烤惊,這時候直接調用Gson 提供的?T fromJson(String json, Type typeOfT)方法轉換會報錯溉奕,會提示json格式轉換不匹配錯誤压语。

? ? ?下面例子的方法可以解決這個問題啸罢。

1. 對象類定義:

public class Content implements Serializable {

private int formType;

private String name;

private String country;

private int intergrity;

private int broadcastType;

private String broadcastAge;

private String issuer;

private String language;

private String url;

private int currentTime;

private String contentId;

private String pContentId;

private int next;

public Content() {

}

public int getFormType() {

return this.formType;

}

public void setFormType(int formType) {

this.formType = formType;

}

public String getName() {

return this.name;

}

public void setName(String name) {

this.name = name;

}

public String getCountry() {

return this.country;

}

public void setCountry(String country) {

this.country = country;

}

public int getIntergrity() {

return this.intergrity;

}

public void setIntergrity(int intergrity) {

this.intergrity = intergrity;

}

public int getBroadcastType() {

return this.broadcastType;

}

public void setBroadcastType(int broadcastType) {

this.broadcastType = broadcastType;

}

public String getBroadcastAge() {

return this.broadcastAge;

}

public void setBroadcastAge(String broadcastAge) {

this.broadcastAge = broadcastAge;

}

public String getIssuer() {

return this.issuer;

}

public void setIssuer(String issuer) {

this.issuer = issuer;

}

public String getLanguage() {

return this.language;

}

public void setLanguage(String language) {

this.language = language;

}

public String getUrl() {

return this.url;

}

public void setUrl(String url) {

this.url = url;

}

public int getCurrentTime() {

return this.currentTime;

}

public void setCurrentTime(int currentTime) {

this.currentTime = currentTime;

}

public String getContentId() {

return this.contentId;

}

public void setContentId(String contentId) {

this.contentId = contentId;

}

public String getPContentId() {

return this.pContentId;

}

public void setPContentId(String pContentId) {

this.pContentId = pContentId;

}

public int getNext() {

return this.next;

}

public void setNext(int next) {

this.next = next;

}

public String toString() {

return "Content{formType=" + this.formType + ", name='" + this.name + '\'' + ", country='" + this.country + '\'' + ", intergrity=" + this.intergrity + ", broadcastType=" + this.broadcastType + ", broadcastAge='" + this.broadcastAge + '\'' + ", issuer='" + this.issuer + '\'' + ", language='" + this.language + '\'' + ", url='" + this.url + '\'' + ", currentTime=" + this.currentTime + ", contentId='" + this.contentId + '\'' + ", pContentId='" + this.pContentId + '\'' + ", next=" + this.next + '}';

}

}

2. json 格式字符串數(shù)組:

[

{

"Content": [

{

"url": "",

"currentTime": 0,

"contentId": 631584528

}

]

}

]

3. 轉換方式為

(1) 新建一個java類,類名稱叫DataBean,類代碼如下:

public class DataBean {

List <Content >?Content;

public List getContent() {

returnContent;

}

public void setContent(List content) {

this.Content= content;

}

}

(2) 調用Gson解析

Gson gson =new Gson();

Type type =newTypeToken<ArrayList<DataBean>>() {

}.getType();

List rs = gson.fromJson(data, type);? //data就是2里面的json格式字符串數(shù)組

List<Content>?contents = rs.get(0).getContent();

這樣就可以獲取到Content類型的對象列表胎食,對于json格式字符串數(shù)組中缺少的參數(shù)扰才,Gson會自動加上,參數(shù)值為參數(shù)初始化的默認值厕怜。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末衩匣,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子粥航,更是在濱河造成了極大的恐慌琅捏,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,948評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件递雀,死亡現(xiàn)場離奇詭異柄延,居然都是意外死亡,警方通過查閱死者的電腦和手機映之,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評論 3 385
  • 文/潘曉璐 我一進店門拦焚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人杠输,你說我怎么就攤上這事赎败。” “怎么了蠢甲?”我有些...
    開封第一講書人閱讀 157,490評論 0 348
  • 文/不壞的土叔 我叫張陵僵刮,是天一觀的道長。 經(jīng)常有香客問我,道長搞糕,這世上最難降的妖魔是什么勇吊? 我笑而不...
    開封第一講書人閱讀 56,521評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮窍仰,結果婚禮上汉规,老公的妹妹穿的比我還像新娘。我一直安慰自己驹吮,他們只是感情好针史,可當我...
    茶點故事閱讀 65,627評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著碟狞,像睡著了一般啄枕。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上族沃,一...
    開封第一講書人閱讀 49,842評論 1 290
  • 那天频祝,我揣著相機與錄音,去河邊找鬼脆淹。 笑死常空,一個胖子當著我的面吹牛,可吹牛的內容都是我干的未辆。 我是一名探鬼主播窟绷,決...
    沈念sama閱讀 38,997評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼咐柜!你這毒婦竟也來了兼蜈?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,741評論 0 268
  • 序言:老撾萬榮一對情侶失蹤拙友,失蹤者是張志新(化名)和其女友劉穎为狸,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體遗契,經(jīng)...
    沈念sama閱讀 44,203評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡辐棒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,534評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了牍蜂。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片漾根。...
    茶點故事閱讀 38,673評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖鲫竞,靈堂內的尸體忽然破棺而出辐怕,到底是詐尸還是另有隱情,我是刑警寧澤从绘,帶...
    沈念sama閱讀 34,339評論 4 330
  • 正文 年R本政府宣布寄疏,位于F島的核電站是牢,受9級特大地震影響,放射性物質發(fā)生泄漏陕截。R本人自食惡果不足惜驳棱,卻給世界環(huán)境...
    茶點故事閱讀 39,955評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望农曲。 院中可真熱鬧社搅,春花似錦、人聲如沸乳规。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,770評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽驯妄。三九已至,卻和暖如春合砂,著一層夾襖步出監(jiān)牢的瞬間青扔,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,000評論 1 266
  • 我被黑心中介騙來泰國打工翩伪, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留微猖,地道東北人。 一個月前我還...
    沈念sama閱讀 46,394評論 2 360
  • 正文 我出身青樓缘屹,卻偏偏與公主長得像凛剥,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子轻姿,可洞房花燭夜當晚...
    茶點故事閱讀 43,562評論 2 349

推薦閱讀更多精彩內容