快速提取Json數(shù)據(jù)的兩大利器

有關(guān)Json

Json作為一種輕量級(jí)的交換數(shù)據(jù)形式舟陆,由于其自身的一些優(yōu)良特性比如包含有效信息多荆陆,易于閱讀和解析而廣受碼農(nóng)以及架構(gòu)的喜愛(ài)。使用Json的場(chǎng)景也很多诊沪,比如讀取解析系列化的Json格式的數(shù)據(jù),我們需要將一個(gè)Json的字符串解析成我們想要的對(duì)象或者提取我們需要的信息曾撤。

稍稍接觸Json數(shù)據(jù)解析的應(yīng)該都會(huì)比較熟悉通過(guò)一些工具庫(kù)比如fastjson或者gons轉(zhuǎn)換為我們想要的對(duì)象端姚。舉例將如下的字符串解析為一個(gè)Person對(duì)象。


37d90001b552547bd7f8

這時(shí)候我們需要聲明一個(gè)與此Json能夠映射的對(duì)象挤悉,好比這樣


37d10001c5d970d62cf7

這是解析Json數(shù)據(jù)的一種比較繁瑣的方式渐裸,這種方式有時(shí)候是必不可少的,因?yàn)槲覀儾粌H要解析json數(shù)據(jù)装悲,?同時(shí)還需要用到解析后的對(duì)象做后續(xù)的業(yè)務(wù)處理昏鹃。

但是,有時(shí)候我們根本用不上這個(gè)對(duì)象诀诊,只想提取出需要的信息洞渤,比如插入到數(shù)據(jù)庫(kù),或者提取出一個(gè)字段作為一個(gè)判定標(biāo)識(shí)属瓣。這時(shí)候载迄,我們可以通過(guò)如下介紹的方式來(lái)實(shí)現(xiàn)即可,不需要通過(guò)新建對(duì)象的方式抡蛙。
下面主要介紹兩種方式宪巨,分別是通過(guò)fastjson和gson的方式實(shí)現(xiàn)。

通過(guò)FastJson實(shí)現(xiàn)

FastJson是阿里巴巴發(fā)布的一個(gè)Json處理工具包溜畅,其特點(diǎn)就是解析快捏卓,效率高,而且支持Java Bean慈格、集合怠晴、Map、日期浴捆、Enum蒜田,支持范型,支持自省等选泻。下面我們看看借助FastJson我們?nèi)绾翁崛〕鑫覀兿胍男畔?/p>

37dc000005b49a084298
  • 通過(guò)靜態(tài)方法parse冲粤,將字符串解析為一個(gè)Object對(duì)象

  • 將返回的jsonObj強(qiáng)轉(zhuǎn)為一個(gè)Map集合

  • 在map集合中獲取需要的信息,比如提取出field1對(duì)應(yīng)的value1

  • 解析出來(lái)的Object對(duì)象其實(shí)就是一個(gè)map集合页眯,這里的filed1就是map中的key梯捕,value1就是map集合中的value

  • 對(duì)于像fieldContext本身就是一個(gè)嵌套的map集合,我們可以從fieldContext的值中再解析拆為map集合

37db00001f9823b52e7e
37dc00000c8c8faa9879

顯然窝撵,我們成功的獲取到了想要提取的字段信息傀顾,同時(shí)也沒(méi)有新建與json對(duì)應(yīng)的對(duì)象。

通過(guò)Gson實(shí)現(xiàn)

GSON是Google開(kāi)發(fā)的Java API碌奉,主要用途為序列化Java對(duì)象為JSON字符串短曾,或反序列化JSON字符串成Java對(duì)象寒砖。
相比較于FastJson,在實(shí)現(xiàn)我們前面提到的提取信息的實(shí)現(xiàn)細(xì)節(jié)上會(huì)有一些不同嫉拐。


37d500002395b5a09d76
  • 創(chuàng)建一個(gè)Gson對(duì)象

  • 調(diào)用Gson的fromJson方法將字符串直接解析成HashMap類型哩都,這一點(diǎn)要比FastJson來(lái)的更加快捷

  • 后面的用法與使用FastJson解析數(shù)據(jù)一致,也是從Map中提取對(duì)應(yīng)字段的值

最終得到的結(jié)果如下


37d70001ef8c93e373df

以上主要是針對(duì)如何快速?gòu)腏son字符串中提取需要信息的場(chǎng)景給出的解決思路婉徘,分別就當(dāng)前流行的FastJson和Gson給出示例代碼漠嵌,后面有機(jī)會(huì)再詳細(xì)說(shuō)說(shuō)有關(guān)解析Json的具體實(shí)例和細(xì)節(jié)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末判哥,一起剝皮案震驚了整個(gè)濱河市献雅,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌塌计,老刑警劉巖挺身,帶你破解...
    沈念sama閱讀 221,198評(píng)論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異锌仅,居然都是意外死亡章钾,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門热芹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)贱傀,“玉大人,你說(shuō)我怎么就攤上這事伊脓「” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 167,643評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵报腔,是天一觀的道長(zhǎng)株搔。 經(jīng)常有香客問(wèn)我,道長(zhǎng)纯蛾,這世上最難降的妖魔是什么纤房? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,495評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮翻诉,結(jié)果婚禮上炮姨,老公的妹妹穿的比我還像新娘。我一直安慰自己碰煌,他們只是感情好舒岸,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,502評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著拄查,像睡著了一般吁津。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上堕扶,一...
    開(kāi)封第一講書(shū)人閱讀 52,156評(píng)論 1 308
  • 那天碍脏,我揣著相機(jī)與錄音,去河邊找鬼稍算。 笑死典尾,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的糊探。 我是一名探鬼主播钾埂,決...
    沈念sama閱讀 40,743評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼科平!你這毒婦竟也來(lái)了褥紫?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,659評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤瞪慧,失蹤者是張志新(化名)和其女友劉穎髓考,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體弃酌,經(jīng)...
    沈念sama閱讀 46,200評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡氨菇,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,282評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了妓湘。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片查蓉。...
    茶點(diǎn)故事閱讀 40,424評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖榜贴,靈堂內(nèi)的尸體忽然破棺而出豌研,到底是詐尸還是另有隱情,我是刑警寧澤唬党,帶...
    沈念sama閱讀 36,107評(píng)論 5 349
  • 正文 年R本政府宣布鹃共,位于F島的核電站,受9級(jí)特大地震影響初嘹,放射性物質(zhì)發(fā)生泄漏及汉。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,789評(píng)論 3 333
  • 文/蒙蒙 一屯烦、第九天 我趴在偏房一處隱蔽的房頂上張望坷随。 院中可真熱鬧,春花似錦驻龟、人聲如沸温眉。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,264評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)类溢。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間闯冷,已是汗流浹背砂心。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,390評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蛇耀,地道東北人辩诞。 一個(gè)月前我還...
    沈念sama閱讀 48,798評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像纺涤,于是被迫代替她去往敵國(guó)和親译暂。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,435評(píng)論 2 359

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

  • JSON的特點(diǎn): JSON數(shù)據(jù)格式(JSON對(duì)象撩炊、JSON數(shù)組): 1外永、JSON對(duì)象:{ } 結(jié)構(gòu):{key1:v...
    gogoingmonkey閱讀 2,441評(píng)論 0 5
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)拧咳,斷路器伯顶,智...
    卡卡羅2017閱讀 134,693評(píng)論 18 139
  • 一直以來(lái),日子都是糊涂的過(guò)呛踊,聽(tīng)爸媽的話砾淌,小學(xué),中學(xué)谭网,大學(xué)汪厨,在離家近的地方工作,結(jié)婚愉择,生子劫乱。似乎,一生就是這樣過(guò)去锥涕。...
    李不乖閱讀 202評(píng)論 0 1