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

java?hutool工具類處理JSON的使用方法

 更新時(shí)間:2024年04月09日 09:20:52   作者:伏加特遇上西柚  
hutool是一個(gè)java基礎(chǔ)工具類,該工具類經(jīng)過(guò)長(zhǎng)期的發(fā)展,API已經(jīng)非常齊全,下面這篇文章主要給大家介紹了關(guān)于java?hutool工具類處理JSON的使用方法,需要的朋友可以參考下

介紹

JSONUtil是針對(duì)JSONObject和JSONArray的靜態(tài)快捷方法集合,在之前的章節(jié)我們已經(jīng)介紹了一些工具方法,在本章節(jié)我們將做一些補(bǔ)充。

使用

1、JSON字符串創(chuàng)建

JSONUtil.toJsonStr可以將任意對(duì)象(Bean、Map、集合等)直接轉(zhuǎn)換為JSON字符串。 如果對(duì)象是有序的Map等對(duì)象,則轉(zhuǎn)換后的JSON字符串也是有序的。

    /**
     * 轉(zhuǎn)換為JSON字符串
     * <p>
     * 被轉(zhuǎn)為JSON的對(duì)象
     *
     * @return JSON字符串
     */
    @Test
    void toJsonStrTest() {
        //map
        SortedMap<Object, Object> sortedMap = new TreeMap<Object, Object>() {
            private static final long serialVersionUID = 1L;
            {
                put("attributes", "a");
                put("b", "b");
                put("c", "c");
            }
        };
        //對(duì)象
        Student beanString = new Student(1, 1, 1, "張三");

        //集合
        List<Student> list = new ArrayList<>();
        list.add(new Student(1, 1, 1, "張三"));
        list.add(new Student(1, 1, 2, "李四"));
        list.add(new Student(1, 1, 3, "王五"));

        System.out.println("JSONUtil.toJsonStr(beanString) = " + JSONUtil.toJsonStr(beanString));
        System.out.println("JSONUtil.toJsonStr(sortedMap) = " + JSONUtil.toJsonStr(sortedMap));
        System.out.println("JSONUtil.toJsonStr(list) = " + JSONUtil.toJsonStr(list));
    }

結(jié)果

JSONUtil.toJsonStr(beanString) = {"gradeId":0,"studentId":1,"termId":1,"classId":1,"name":"張三"}
JSONUtil.toJsonStr(sortedMap) = {"attributes":"a","b":"b","c":"c"}
JSONUtil.toJsonStr(list) = [{"gradeId":0,"studentId":1,"termId":1,"classId":1,"name":"張三"},
{"gradeId":0,"studentId":2,"termId":1,"classId":1,"name":"李四"},
{"gradeId":0,"studentId":3,"termId":1,"classId":1,"name":"王五"}]

如果我們想獲得格式化后的JSON,則:

JSONUtil.toJsonPrettyStr(object);

System.out.println("JSONUtil.toJsonPrettyStr(sortedMap) = "
 + JSONUtil.toJsonPrettyStr(sortedMap));

結(jié)果

JSONUtil.toJsonPrettyStr(sortedMap) = {
    "attributes": "a",
    "b": "b",
    "c": "c"
}

2、JSON字符串解析

    /**
     * JSON字符串轉(zhuǎn)JSONObject對(duì)象
     * <p>
     * JSON字符串
     *
     * @return JSONObject
     */
    @Test
    void Test() {
        String html = "{\"name\":\"Something must have been changed since you leave\"}";
        JSONObject jsonObject = JSONUtil.parseObj(html);
        System.out.println("jsonObject.getStr(\"name\") = " + jsonObject.getStr("name"));
    }

結(jié)果

jsonObject.getStr("name") = Something must have been changed since you leave

3、XML字符串轉(zhuǎn)換為JSON

    /**
     * XML字符串轉(zhuǎn)為JSONObject
     *
     *  XML字符串
     * @return JSONObject
     */
    @Test
    void parseFromXmlTest() {
        String s = "<sfzh>123</sfzh><sfz>456</sfz><name>aa</name><gender>1</gender>";
        JSONObject json = JSONUtil.parseFromXml(s);
        System.out.println("json.get(\"sfzh\") = " + json.get("sfzh"));
        System.out.println("json.get(\"name\") = " + json.get("name"));

    }

結(jié)果

json.get("sfzh") = 123
json.get("name") = aa

4、JSON轉(zhuǎn)換為XML

    /**
     * 轉(zhuǎn)換為XML字符串
     *
     * @param json JSON
     * @return XML字符串
     */
    @Test
    void toXmlStrTest() {
        final JSONObject put = JSONUtil.createObj()
                .set("aaa", "你好")
                .set("鍵2", "test");

// <aaa>你好</aaa><鍵2>test</鍵2>
        final String s = JSONUtil.toXmlStr(put);
        System.out.println("s = " + s);

    }

結(jié)果

s = <aaa>你好</aaa><鍵2>test</鍵2>

5、 JSON轉(zhuǎn)Bean

我們先定義兩個(gè)較為復(fù)雜的Bean(包含泛型)

    @Data
    public class ADT {
        private List<String> BookingCode;
    }

    @Data
    public class Price {
        private List<List<ADT>> ADT;
    }

    /**
     * JSON字符串轉(zhuǎn)為實(shí)體類對(duì)象,轉(zhuǎn)換異常將被拋出
     *
     * @param <T>        Bean類型
     * @param jsonString JSON字符串
     * @param beanClass  實(shí)體類對(duì)象
     * @return 實(shí)體類對(duì)象
     * @since 3.1.2
     */
    @Test
    void toBeanTest() {
        String json = "{\"ADT\":[[{\"BookingCode\":[\"N\",\"N\"]}]]}";
        Price price = JSONUtil.toBean(json, Price.class);
        System.out.println("price = " + price);
    }

以下是 Hutool 中關(guān)于 JSON 的常用方法:

JSON 字符串的解析與生成:

  • JSONUtil.parseObj(jsonStr):將 JSON 字符串解析為 JSONObject 對(duì)象。
  • JSONUtil.parseArray(jsonStr):將 JSON 字符串解析為 JSONArray 數(shù)組對(duì)象。
  • JSONUtil.toJsonStr(obj):將 Java 對(duì)象轉(zhuǎn)換為 JSON 字符串。

對(duì)象與 JSON 字符串的轉(zhuǎn)換:

  • JSONUtil.toBean(jsonStr, clazz):將 JSON 字符串轉(zhuǎn)換為指定類型的 Java 對(duì)象。
  • JSONUtil.toMap(jsonStr):將 JSON 字符串轉(zhuǎn)換為 Map 對(duì)象。
  • JSONUtil.toCamelCaseMap(bean):將 Java 對(duì)象轉(zhuǎn)換為駝峰風(fēng)格的 Map 對(duì)象,適用于大部分 JavaBean。

JSON 對(duì)象的操作:

  • JSONObject.get(key):獲取 JSON 對(duì)象中指定 key 的值。
  • JSONObject.put(key, value):向 JSON 對(duì)象中添加鍵值對(duì)。
  • JSONObject.containsKey(key):判斷 JSON 對(duì)象中是否包含指定的 key。
  • JSONObject.keySet():獲取 JSON 對(duì)象中所有鍵的集合。

JSON 數(shù)組的操作:

  • JSONArray.get(index):獲取 JSON 數(shù)組中指定索引的元素。
  • JSONArray.add(value):向 JSON 數(shù)組中添加元素。
  • JSONArray.size():獲取 JSON 數(shù)組的長(zhǎng)度。
  • JSONArray.iterator():獲取 JSON 數(shù)組的迭代器。

其他常用方法:

  • JSONUtil.parseFromXml(xmlStr):將 XML 字符串解析為 JSON 對(duì)象。
  • JSONUtil.toXmlStr(jsonObject):將 JSON 對(duì)象轉(zhuǎn)換為 XML 字符串。

總結(jié) 

到此這篇關(guān)于java hutool工具類處理JSON的使用方法的文章就介紹到這了,更多相關(guān)java hutool處理JSON內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Mapper.xml中查詢返回帶有List屬性的實(shí)體類結(jié)果問(wèn)題

    Mapper.xml中查詢返回帶有List屬性的實(shí)體類結(jié)果問(wèn)題

    這篇文章主要介紹了Mapper.xml中查詢返回帶有List屬性的實(shí)體類結(jié)果問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • java異常和錯(cuò)誤類總結(jié)(必看篇)

    java異常和錯(cuò)誤類總結(jié)(必看篇)

    下面小編就為大家?guī)?lái)一篇java異常和錯(cuò)誤類總結(jié)(必看篇)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-09-09
  • SpringBoot JPA使用配置過(guò)程詳解

    SpringBoot JPA使用配置過(guò)程詳解

    這篇文章主要介紹了SpringBoot JPA使用配置過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • JAVA 多線程爬蟲(chóng)實(shí)例詳解

    JAVA 多線程爬蟲(chóng)實(shí)例詳解

    這篇文章主要介紹了JAVA 多線程爬蟲(chóng)實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • SpringBoot在一定時(shí)間內(nèi)限制接口請(qǐng)求次數(shù)的實(shí)現(xiàn)示例

    SpringBoot在一定時(shí)間內(nèi)限制接口請(qǐng)求次數(shù)的實(shí)現(xiàn)示例

    在項(xiàng)目中,接口的暴露在外面,很多人就會(huì)惡意多次快速請(qǐng)求,本文主要介紹了SpringBoot在一定時(shí)間內(nèi)限制接口請(qǐng)求次數(shù)的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下
    2022-03-03
  • Java中的泛型和泛型通配符詳解

    Java中的泛型和泛型通配符詳解

    這篇文章主要介紹了Java中的泛型和泛型通配符詳解,泛型的作用就是在編譯的時(shí)候能夠檢查類型安全,并且所有的強(qiáng)制轉(zhuǎn)換都是自動(dòng)和隱式的在沒(méi)有泛型的情況的下,通過(guò)對(duì)類型Object的引用來(lái)實(shí)現(xiàn)參數(shù)的“任意化”,需要的朋友可以參考下
    2023-07-07
  • springboot如何重定向攜帶數(shù)據(jù) RedirectAttributes

    springboot如何重定向攜帶數(shù)據(jù) RedirectAttributes

    這篇文章主要介紹了springboot如何重定向攜帶數(shù)據(jù) RedirectAttributes,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Java中注解@JsonFormat的用法詳解

    Java中注解@JsonFormat的用法詳解

    這篇文章主要給大家介紹了關(guān)于Java中注解@JsonFormat用法的相關(guān)資料,以及分享了@JsonFormat 將枚舉序列化為對(duì)象的方法,文中給出了詳細(xì)的代碼實(shí)例,需要的朋友可以參考下
    2023-01-01
  • Java導(dǎo)出CSV文件的方法

    Java導(dǎo)出CSV文件的方法

    這篇文章主要為大家詳細(xì)介紹了Java導(dǎo)出CSV文件的方法,分頁(yè)查詢大數(shù)據(jù)量,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • MybatisPlus實(shí)現(xiàn)邏輯刪除的示例代碼

    MybatisPlus實(shí)現(xiàn)邏輯刪除的示例代碼

    本文主要介紹了Mybatis?Plus實(shí)現(xiàn)邏輯刪除的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05

最新評(píng)論

通化县| 德阳市| 孙吴县| 翁源县| 涟源市| 郎溪县| 龙州县| 古交市| 东城区| 南宁市| 内黄县| 佳木斯市| 曲水县| 浏阳市| 大石桥市| 仙桃市| 万载县| 闻喜县| 高要市| 舞钢市| 南岸区| 铅山县| 唐河县| 宣恩县| 浏阳市| 大悟县| 那曲县| 蓬溪县| 云安县| 衡山县| 常熟市| 辽阳市| 于田县| 柘城县| 黄大仙区| 宜黄县| 姜堰市| 东城区| 宜良县| 中江县| 内乡县|