hutool tool-----JSON tool-JSONUtil

JSONUtil

introduce

JSONUtil is a collection of static shortcut methods for JSONObject and JSONArray. We have introduced some tool methods in previous chapters, and we will make some additions in this chapter.

use

1. JSON string creation

JSONUtil.toJsonStr can directly convert any object (Bean, Map, collection, etc.) into a JSON string. If the object is an ordered Map, etc., the converted JSON string is also ordered.

    /**
     * 转换为JSON字符串
     * <p>
     * 被转为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));
    }

result

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":"王五"}]

If we want to get the formatted JSON, then:

JSONUtil.toJsonPrettyStr(object);

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

result

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

2. JSON string parsing

    /**
     * JSON字符串转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"));
    }

result

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

3. Convert XML string to JSON

    /**
     * XML字符串转为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"));

    }

result

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

4. Convert JSON to XML

    /**
     * 转换为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);

    }

result

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

5. JSON to Bean

Let's first define two more complex beans (including generics)

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

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

    /**
     * JSON字符串转为实体类对象,转换异常将被抛出
     *
     * @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);
    }

Guess you like

Origin blog.csdn.net/weixin_43811057/article/details/123427701