• [java]JsonObject与JsonArray转换


    备忘一下,首先
    这是一个JsonArrayStr,他可以转换为JsonArray

    [{"name":"a1"},{"name":"a2"}]
    
    • 1

    这是一个JsonObjectStr,他可以转换为JsonObject

    {"result":[{"name":"a1"},{"name":"a2"}]}
    
    • 1

    JsonObject转换为java对象、JsonArray转换为Java对象

    JsonObject的value为JsonArray,对应的java类型为List。在案例中,java代码如下(这里用的内部类)

    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    class AList{
        private List<PersonA> result;
    }
    
    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    class PersonA{
        private String name;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 使用fastjson转换jsonStr为java对象,完整代码如下
    
    public class JsonTest {
    
        public static void main(String[] args) {
    
            String strArray  ="[{\"name\":\"a1\"},{\"name\":\"a2\"}]";
            String strObject  ="{\"result\":[{\"name\":\"a1\"},{\"name\":\"a2\"}]}";
            // parseArray保证属性key一致即可正确转换
            List<PersonA> personAList = JSON.parseArray(strArray, PersonA.class);
            // parseObject需要保证属性key一致即可正确转换
            AList aList = JSON.parseObject(strObject, AList.class);
    
        }
    }
    
    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    class AList{
    
        private List<PersonA> result;
    
    }
    
    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    class PersonA{
        private String name;
    }
    
    
    • 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
    • 使用hutool转换jsonStr为java对象,核心代码如下
     List<PersonA> personAList = JSONUtil.toList(JSONUtil.parseArray(strArray), PersonA.class);
    
    • 1

    JsonArray转换为JsonObject

    已知一个JsonArrayStr,内容为。

    [{"name":"a1"},{"name":"a2"}]
    
    • 1

    不可以直接parseObject,JsonObject格式为{},且含有键值对。
    使用以下方法将JsonArrayStr转换为JsonObject对象:

    • 使用fastjson
            JSONArray array = JSON.parseArray(strArray);
            JSONObject jsonObject = new JSONObject();
            jsonObject.put("result",array);
    
    • 1
    • 2
    • 3
    • 使用hutool
            JSONArray array = JSONUtil.parseObj(strArray);;
            JSONObject jsonObject = new JSONObject();
            jsonObject.put("result",array);
    
    • 1
    • 2
    • 3

    即将JsonArrayStr转换为JsonObjectStr

    {"result":[{"name":"a1"},{"name":"a2"}]}
    
    • 1

    真的搞不懂,为什么上游传一个json值下来,直接传一个object不行么?不行么?不行么???????

    JsonArrayStr 转换为 JsonObjectStr

    有什么好说的,加括号,加键。
    推荐使用hutool的StrUtil.wrap()

            String strArray = "[{\"name\":\"a1\"},{\"name\":\"a2\"}]";
            String strObject  = StrUtil.wrap(strArray, "{\"result\":", "}");
    
    • 1
    • 2

    最后得到的值为

    {"result":[{"name":"a1"},{"name":"a2"}]}
    
    • 1
  • 相关阅读:
    使用springBoot+Redis实现分布式缓存
    50、Spring WebFlux 的 自动配置 的一些介绍,与 Spring MVC 的一些对比
    高教社杯数模竞赛特辑论文篇-2018年D题:汽车总装线配置的优化模型研究
    数字集成电路设计(一、Verilog HDL数字集成电路设计方法概述)
    SpringCloud 10 Hystrix 服务降级
    AI与元宇宙擦出火花:人类失去的只有枷锁,获得的是全方面的解放
    SQL SERVER中XML查询:FOR XML指定RAW
    【C++ 初阶】引用 (&) 实际的一些用法、常引用问题 详解!
    C语言画直方图
    02、RocketMQ -- 应用场景、核心概念
  • 原文地址:https://blog.csdn.net/mdwsmg/article/details/126888421