Android Json解析詳解

一.什么是JSON


json(Javascript Object Notation)是一種輕量級的數(shù)據(jù)交換格式翁巍,相比于xml這種數(shù)據(jù)交換格式來說秦陋,因為解析xml比較的復(fù)雜摔踱,而且需要編寫大段的代碼蔗包,所以客戶端和服務(wù)器的數(shù)據(jù)交換格式往往通過json來進(jìn)行交換句各。尤其是對于web開發(fā)來說链患,json數(shù)據(jù)格式在客戶端直接可以通過javascript來進(jìn)行解析巧鸭。

json一共有兩種數(shù)據(jù)結(jié)構(gòu),一種是以 (key/value)對形式存在的無序的jsonObject對象麻捻,一個對象以“{”(左花括號)開始纲仍,“}”(右花括號)結(jié)束览闰。每個“名稱”后跟一個“:”(冒號);“‘名稱/值’ 對”之間使用“,”(逗號)分隔巷折。

另一種數(shù)據(jù)格式就是有序的value的集合压鉴,這種形式被稱為是jsonArray,數(shù)組是值(value)的有序集合锻拘。一個數(shù)組以“[”(左中括號)開始油吭,“]”(右中括號)結(jié)束。值之間使用“,”(逗號)分隔署拟。

二婉宰、解析json數(shù)據(jù)格式

GSON解析:

GSON是Google提供的用來在Java對象和JSON數(shù)據(jù)之間進(jìn)行映射的Java類庫。使用GSON推穷,可以很容易的將一串JSON數(shù)據(jù)轉(zhuǎn)換為一個Java對象心包,或是將一個Java對象轉(zhuǎn)換為相應(yīng)的JSON數(shù)據(jù)。

1.GSON的兩個重要方法:

在GSON的API中馒铃,提供了兩個重要的方法:toJson()和fromJson()方法蟹腾。其中,toJson()方法用來實現(xiàn)將Java對象轉(zhuǎn)換為相應(yīng)的JSON數(shù)據(jù)区宇,fromJson()方法則用來實現(xiàn)將JSON數(shù)據(jù)轉(zhuǎn)換為相應(yīng)的Java對象娃殖。

1.1 toJson()方法

toJson()方法用于將Java對象轉(zhuǎn)換為相應(yīng)的JSON數(shù)據(jù),主要有以下幾種形式:

(1)String?toJson(JsonElement?jsonElement);

(2)String?toJson(Object?src);

(3)String?toJson(Object?src,?Type?typeOfSrc);

其中议谷,方法(1)用于將JsonElement對象(可以是JsonObject炉爆、JsonArray等)轉(zhuǎn)換成JSON數(shù)據(jù);方法(2)用于將指定的Object對象序列化成相應(yīng)的JSON數(shù)據(jù)卧晓;方法(3)用于將指定的Object對象(可以包括泛型類型)序列化成相應(yīng)的JSON數(shù)據(jù)芬首。

1.2 fromJson()方法

fromJson()方法用于將JSON數(shù)據(jù)轉(zhuǎn)換為相應(yīng)的Java對象,主要有以下幾種形式:

(1)?T?fromJson(JsonElement?json,?Class?classOfT);

(2)?T?fromJson(JsonElement?json,?Type?typeOfT);

(3)?T?fromJson(JsonReader?reader,?Type?typeOfT);

(4)?T?fromJson(Reader?reader,?Class?classOfT);

(5)?T?fromJson(Reader?reader,?Type?typeOfT);

(6)?T?fromJson(String?json,?Class?classOfT);

(7)?T?fromJson(String?json,?Type?typeOfT);

以上的方法用于將不同形式的JSON數(shù)據(jù)解析成Java對象逼裆。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末郁稍,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子波附,更是在濱河造成了極大的恐慌艺晴,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件掸屡,死亡現(xiàn)場離奇詭異封寞,居然都是意外死亡,警方通過查閱死者的電腦和手機仅财,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進(jìn)店門狈究,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人盏求,你說我怎么就攤上這事抖锥∫诿撸” “怎么了?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵磅废,是天一觀的道長纳像。 經(jīng)常有香客問我,道長拯勉,這世上最難降的妖魔是什么竟趾? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮宫峦,結(jié)果婚禮上岔帽,老公的妹妹穿的比我還像新娘。我一直安慰自己导绷,他們只是感情好犀勒,可當(dāng)我...
    茶點故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著妥曲,像睡著了一般贾费。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上逾一,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天铸本,我揣著相機與錄音肮雨,去河邊找鬼遵堵。 笑死,一個胖子當(dāng)著我的面吹牛怨规,可吹牛的內(nèi)容都是我干的陌宿。 我是一名探鬼主播,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼波丰,長吁一口氣:“原來是場噩夢啊……” “哼壳坪!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起掰烟,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤爽蝴,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后纫骑,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蝎亚,經(jīng)...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年先馆,在試婚紗的時候發(fā)現(xiàn)自己被綠了发框。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,711評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡煤墙,死狀恐怖梅惯,靈堂內(nèi)的尸體忽然破棺而出宪拥,到底是詐尸還是另有隱情,我是刑警寧澤铣减,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布她君,位于F島的核電站,受9級特大地震影響葫哗,放射性物質(zhì)發(fā)生泄漏犁河。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一魄梯、第九天 我趴在偏房一處隱蔽的房頂上張望桨螺。 院中可真熱鬧,春花似錦酿秸、人聲如沸灭翔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽肝箱。三九已至,卻和暖如春稀蟋,著一層夾襖步出監(jiān)牢的瞬間煌张,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工退客, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留骏融,地道東北人。 一個月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓萌狂,卻偏偏與公主長得像档玻,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子茫藏,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,611評論 2 353

推薦閱讀更多精彩內(nèi)容