最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java鏈?zhǔn)絼?chuàng)建json對象的實現(xiàn)

 更新時間:2022年02月11日 11:04:18   作者:魚塘總裁  
本文主要介紹了java中如何通過最簡單的方式實現(xiàn)鏈?zhǔn)絼?chuàng)建json對象,解決創(chuàng)建json代碼臃腫的問題,具有一定的參考價值,感興趣的小伙伴們可以參考一下

我們主要介紹一下:java中如何通過最簡單的方式實現(xiàn)鏈?zhǔn)絼?chuàng)建json對象,解決創(chuàng)建json代碼臃腫的問題。

1、假設(shè)我們要創(chuàng)建一個json對象格式如下:

{
    "code": 0,
    "msg": "SUCCESS"
}

2、往常創(chuàng)建JSON語法:

java中傳統(tǒng)的創(chuàng)建json一般采用如下形式,先來看一個例子:

JSONObject res = new JSONObject();
res.put("code",0);
res.put("msg","SUCCESS");

這個例子中,每往json中加入一個元素都需要寫一遍res.put,每行只能創(chuàng)建一個json的數(shù)據(jù),這樣比較繁瑣,代碼也很臃腫,是不是覺得很不科學(xué)。

如果你覺得這還能接受,那么你不妨試試二級json,三級json,完整的寫下來,你的代碼能有幾十行是毫不夸張的。

3、解決方案——鏈?zhǔn)絼?chuàng)建JSON:

我們可以采用鏈?zhǔn)絼?chuàng)建JSON的方法,例如下面例子:

JSONObject res1 = new YtJSONObject().put("code",0).put("msg","SUCCESS").getHome();

通過以上例子中,我們實現(xiàn)了鏈?zhǔn)絼?chuàng)建JSON,每往JSON中加入一個元素,只需要在鏈?zhǔn)綄懛ǎㄒ卜Q鏈條語法)中寫.put接上新元素即可。

這樣我們就實現(xiàn)了鏈?zhǔn)絼?chuàng)建JSON,好處是免去每次都寫res.put的煩惱,創(chuàng)建一個完整的JSON對象只需要一行代碼即可,這樣代碼就整潔清晰了很多。

以上例子中我們用到了一個類:YtJSONObject,這個類是將JSONObject類再次封裝的一個加強類,通過.put元素鏈條寫完后,最終采用.getHome獲取得到JSONObject類對象,從而實現(xiàn)JSON的鏈?zhǔn)綄懛?/strong>。

如需獲取JSON字符串,我們只需要使用JSONObject對象原有的方法,例如:

String str = new YtJSONObject().put("code",0).put("msg","SUCCESS").getHome().toString();

這里的.getHome()方法就是真正獲取到了JSONObject類對象,同時也就支持了JSONObject類對象的一切方法,所以可以調(diào)用.toString()轉(zhuǎn)為json字符串。

4、實現(xiàn)多級JSON

很多時候我們的json都不是一級的,還會有二級、三級、無數(shù)級,此時使用傳統(tǒng)的json聲明語法只會時代碼越來越多,作用卻不大。

使用鏈?zhǔn)絡(luò)son如何實現(xiàn)呢,我們來看個例子:

JSONObject res2 = new YtJSONObject()
    .put("code",0)
    .put("msg","SUCCESS")
    .put("result",
        new YtJSONObject()
            .put("id",1)
            .put("url","a")
        )
    .getHome();

以上例子中我們實現(xiàn)了一個二級JSON,就是增加了一個result級別的json,直接在賦值的地方繼續(xù)new YtJSONObject對象,然后繼續(xù)向下使用鏈?zhǔn)綄懛纯桑绻氵€需要三級JSON甚至多級JSON也是同理。

為了讓語法看起來更加清晰,我把鏈?zhǔn)綄懛ǜ袷交艘幌?,更容易看清楚,實際應(yīng)用中不太長的JSON鏈?zhǔn)綄懛ㄍ耆梢詫懺谝恍猩稀?/p>

5、YtJSONObject類源碼

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類支持鏈?zhǔn)秸Z法,并不是自行創(chuàng)建了一種JSON類類型,因此使用時還需要在pom.xml中引入一下fastjson

到此這篇關(guān)于java鏈?zhǔn)絼?chuàng)建json對象的文章就介紹到這了,更多相關(guān)java鏈?zhǔn)絼?chuàng)建json對象內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot單元測試之?dāng)?shù)據(jù)隔離詳解

    SpringBoot單元測試之?dāng)?shù)據(jù)隔離詳解

    我們在寫單元測試時,有一個比較重要的要求是可以重復(fù)運行, 那么這樣就會有一個比較麻煩的問題:數(shù)據(jù)污染,所以本文為大家整理了兩個數(shù)據(jù)隔離的方式,希望對大家有所幫助
    2023-08-08
  • Java中Lombok @Value注解導(dǎo)致的variable not been initialized問題

    Java中Lombok @Value注解導(dǎo)致的variable not been initialized問題

    本文主要介紹了Java中Lombok @Value注解導(dǎo)致的variable not been initialized問題,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • JEE與Spring Boot代碼性能比較分析

    JEE與Spring Boot代碼性能比較分析

    JavaEE與Spring Boot其實很難比較測試,前者適合單體SOA架構(gòu),后者適合微服務(wù),但是還是有好事者把兩者放在一起比較性能。這篇文章主要介紹了JEE與Spring Boot代碼性能比較,需要的朋友可以參考下
    2018-11-11
  • Java繼承的問題引導(dǎo)和測試代碼

    Java繼承的問題引導(dǎo)和測試代碼

    這篇文章主要介紹了Java繼承的問題引導(dǎo)和測試代碼,涉及繼承的概念,合成的語法等相關(guān)內(nèi)容,具有一定借鑒價值,需要的朋友可以參考下。
    2021-08-08
  • Java全面深入探究SpringBoot攔截器與文件上傳

    Java全面深入探究SpringBoot攔截器與文件上傳

    攔截器對使用SpringMvc、Struts的開發(fā)人員來說特別熟悉,因為你只要想去做好一個項目必然會用到它,文件上傳是一個很常見的功能。在項目開發(fā)過程中,我們通常都會使用一些成熟的上傳組件來實現(xiàn)對應(yīng)的功能
    2022-05-05
  • java的JIT 工作原理簡單介紹

    java的JIT 工作原理簡單介紹

    這篇文章主要介紹了java的JIT 工作原理簡單介紹的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • 解決Spring JPA 使用@transaction注解時產(chǎn)生CGLIB代理沖突問題

    解決Spring JPA 使用@transaction注解時產(chǎn)生CGLIB代理沖突問題

    這篇文章主要介紹了解決Spring JPA 使用@transaction注解時產(chǎn)生CGLIB代理沖突問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • 帶你入門Java的數(shù)組

    帶你入門Java的數(shù)組

    這篇文章主要給大家介紹了關(guān)于Java中數(shù)組的定義和使用的相關(guān)資料,,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-07-07
  • java常用工具類 UUID、Map工具類

    java常用工具類 UUID、Map工具類

    這篇文章主要為大家詳細(xì)介紹了Java常用工具類,包括UUID工具類、Map工具類,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • SpringMVC中的攔截器詳解及代碼示例

    SpringMVC中的攔截器詳解及代碼示例

    這篇文章主要介紹了SpringMVC中的攔截器詳解及代碼示例,分享了相關(guān)代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下
    2018-02-02

最新評論

沐川县| 寻乌县| 通渭县| 惠来县| 屏东县| 铜陵市| 洛南县| 合阳县| 聂荣县| 中西区| 平乡县| 福海县| 天祝| 肃北| 清涧县| 息烽县| 孝昌县| 慈溪市| 中宁县| 新津县| 洞头县| 堆龙德庆县| 社旗县| 达拉特旗| 邳州市| 科技| 信阳市| 东城区| 冷水江市| 沁水县| 贺兰县| 商丘市| 荃湾区| 柘荣县| 游戏| 巨野县| 蒲江县| 张家口市| 新巴尔虎左旗| 肃宁县| 资源县|