美文网首页
Spring Boot 13 -- json 的使用

Spring Boot 13 -- json 的使用

作者: 半碗鱼汤 | 来源:发表于2019-10-23 21:34 被阅读0次

    一、导入依赖

            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>fastjson</artifactId>
                <version>1.2.32</version>
            </dependency>
    

    二、常用方法

    1. Json 对象转 Java 对象

    json

    {
        "field1": 123, 
        "field2": "xxx", 
        "field3": "xxx"
     }
    

    Dto.java

    import lombok.Data;
    
    @Data
    public class Dto {
        private int field1;
        private String field2;
        private String field3;
    }
    

    转换

        try {
                Dto dto = JSONObject.parseObject(jsonStr, Dto.class);
            } catch (Exception e) {
                // 转换出错
            }
    

    2. Json 数组转 Java List

    json

    [{
        "field1": 1, 
        "field2": "xxx1", 
        "field3": "xxx1"
     },
     {
        "field1": 2, 
        "field2": "xxx2", 
        "field3": "xxx2"
     }]
    

    Dto.java

    import lombok.Data;
    
    @Data
    public class Dto {
        private int field1;
        private String field2;
        private String field3;
    }
    

    转换

        try {
                List<Dto> dtoList = JSONObject.parseArray(jsonStr, Dto.class);
            } catch (Exception e) {
                // 转换出错
            }
    

    3、将一个实体类转成 json 对象

    JSON.toJSON(dto)
    

    4、将一个 dto list 复制到一个 vo list

    List<Dto> dtoList = new ArrayList<>();
    List<Vo> voList = JSON.parseArray(JSON.toJSONString(dtoList), Vo.class);
    

    5、有序的 json 对象

    JSON 数据本身是无序的,通常由字符串生成的 JSONObject 也是无序的。如果想 JSONObject 节点的顺序与字符串原本的顺序保持一致,可以借助 fastjson 很容易地实现。

    • 将字符串 data 转换成有序的 JSONObject
    JSONObject jsonObject = JSONObject.parseObject(data, JSONObject.class, Feature.OrderedField);
    
    • 新建一个有顺序的 json 对象
    JSONObject jsonObject = new JSONObject(true);
    

    相关文章

      网友评论

          本文标题:Spring Boot 13 -- json 的使用

          本文链接:https://www.haomeiwen.com/subject/muekectx.html