定制软件hutool工具-----JSON工具-JSONUtil

文章预览:

JSONUtil

介绍

JSONUtil是针对JSONObject定制软件和的静态快捷方法集合,定制软件在之前的章节我们已经定制软件介绍了一些工具方法,定制软件在本章节我们将做一些补充。

使用

1、JSON字符串创建

JSONUtil.toJsonStr可以将任意对象(Bean、Map、集合等)直接转换为JSON字符串。 如果对象是有序的Map等对象,则转换后的JSON字符串也是有序的。

    /**     * 转换为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));    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

结果

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":"王五"}]
  • 1
  • 2
  • 3
  • 4
  • 5

如果我们想获得格式化后的JSON,则:

JSONUtil.toJsonPrettyStr(object);System.out.println("JSONUtil.toJsonPrettyStr(sortedMap) = " + JSONUtil.toJsonPrettyStr(sortedMap));
  • 1
  • 2
  • 3
  • 4

结果

JSONUtil.toJsonPrettyStr(sortedMap) = {    "attributes": "a",    "b": "b",    "c": "c"}
  • 1
  • 2
  • 3
  • 4
  • 5

2、JSON字符串解析

    /**     * 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"));    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

结果

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

3、XML字符串转换为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"));    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

结果

json.get("sfzh") = 123json.get("name") = aa
  • 1
  • 2

4、JSON转换为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);    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

结果

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

5、 JSON转Bean

我们先定义两个较为复杂的Bean(包含)

    @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);    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发