<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
我們主要介紹一下:java中如何通過最簡單的方式實現鏈式建立json物件,解決建立json程式碼臃腫的問題。
{ "code": 0, "msg": "SUCCESS" }
java中傳統的建立json一般採用如下形式,先來看一個例子:
JSONObject res = new JSONObject(); res.put("code",0); res.put("msg","SUCCESS");
這個例子中,每往json中加入一個元素都需要寫一遍res.put,每行只能建立一個json的資料,這樣比較繁瑣,程式碼也很臃腫,是不是覺得很不科學。
如果你覺得這還能接受,那麼你不妨試試二級json,三級json,完整的寫下來,你的程式碼能有幾十行是毫不誇張的。
我們可以採用鏈式建立JSON的方法,例如下面例子:
JSONObject res1 = new YtJSONObject().put("code",0).put("msg","SUCCESS").getHome();
通過以上例子中,我們實現了鏈式建立JSON,每往JSON中加入一個元素,只需要在鏈式寫法(也稱鏈條語法)中寫.put接上新元素即可。
這樣我們就實現了鏈式建立JSON,好處是免去每次都寫res.put的煩惱,建立一個完整的JSON物件只需要一行程式碼即可,這樣程式碼就整潔清晰了很多。
以上例子中我們用到了一個類:YtJSONObject,這個類是將JSONObject類再次封裝的一個加強類,通過.put元素鏈條寫完後,最終採用.getHome獲取得到JSONObject類物件,從而實現JSON的鏈式寫法。
如需獲取JSON字串,我們只需要使用JSONObject物件原有的方法,例如:
String str = new YtJSONObject().put("code",0).put("msg","SUCCESS").getHome().toString();
這裡的.getHome()方法就是真正獲取到了JSONObject類物件,同時也就支援了JSONObject類物件的一切方法,所以可以呼叫.toString()轉為json字串。
很多時候我們的json都不是一級的,還會有二級、三級、無數級,此時使用傳統的json宣告語法只會時程式碼越來越多,作用卻不大。
使用鏈式json如何實現呢,我們來看個例子:
JSONObject res2 = new YtJSONObject() .put("code",0) .put("msg","SUCCESS") .put("result", new YtJSONObject() .put("id",1) .put("url","a") ) .getHome();
以上例子中我們實現了一個二級JSON,就是增加了一個result級別的json,直接在賦值的地方繼續new YtJSONObject物件,然後繼續向下使用鏈式寫法即可,如果你還需要三級JSON甚至多級JSON也是同理。
為了讓語法看起來更加清晰,我把鏈式寫法格式化了一下,更容易看清楚,實際應用中不太長的JSON鏈式寫法完全可以寫在一行上。
import com.alibaba.fastjson.JSONObject; public class YtJSONObject { private JSONObject home; public YtJSONObject() { this.home = new JSONObject(); } public YtJSONObject put(String key, Object value) { home.put(key, value); return this; } public JSONObject getHome() { return home; } }
該類只是增強了JSONObject類,使JSONObject類支援鏈式語法,並不是自行建立了一種JSON類型別,因此使用時還需要在pom.xml中引入一下fastjson
到此這篇關於java鏈式建立json物件的文章就介紹到這了,更多相關java鏈式建立json物件內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45