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

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

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

介紹

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

使用

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

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

    /**
     * 轉(zhuǎn)換為JSON字符串
     * <p>
     * 被轉(zhuǎn)為JSON的對象
     *
     * @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");
            }
        };
        //對象
        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對象
     * <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

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

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

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

    /**
     * JSON字符串轉(zhuǎn)為實體類對象,轉(zhuǎn)換異常將被拋出
     *
     * @param <T>        Bean類型
     * @param jsonString JSON字符串
     * @param beanClass  實體類對象
     * @return 實體類對象
     * @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 對象。
  • JSONUtil.parseArray(jsonStr):將 JSON 字符串解析為 JSONArray 數(shù)組對象。
  • JSONUtil.toJsonStr(obj):將 Java 對象轉(zhuǎn)換為 JSON 字符串。

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

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

JSON 對象的操作:

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

JSON 數(shù)組的操作:

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

其他常用方法:

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

總結(jié) 

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

相關(guān)文章

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

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

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

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

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

    SpringBoot JPA使用配置過程詳解

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

    JAVA 多線程爬蟲實例詳解

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

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

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

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

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

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

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

    Java中注解@JsonFormat的用法詳解

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

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

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

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

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

最新評論

南宫市| 晋宁县| 赤城县| 凤庆县| 扶风县| 临夏县| 石城县| 锦州市| 察哈| 兴仁县| 象州县| 辽阳县| 宜良县| 樟树市| 东丰县| 杭锦后旗| 交口县| 贵阳市| 武冈市| 宜兰县| 新宁县| 噶尔县| 合肥市| 吉木乃县| 绥滨县| 彭山县| 万载县| 定日县| 嘉定区| 万盛区| 鹤岗市| 白山市| 盘锦市| 绍兴县| 筠连县| 拜城县| 永和县| 嵊州市| 浑源县| 福安市| 驻马店市|