Springboot通过ObjectMapper(节点树)解析JSON

1、ObjectMapper通过节点树的方式解析JSON字符串

1.1、通过节点直接获取属性值

1.1.1、测试代码

node.get("order_id"):直接获取JSON中属性对应的值

@Test
public void  parseJson() throws Exception{
    //创建json字符串,模拟从外界接收的订单信息
    //order_id:订单id       total_amount:总价格  subject:产品信息
    //goods_detail:商品id  order_type:订单类型
    //其中goods_detail属性对应的值还是JSON字符串
    String orderInfo="{\"order_id\":\"202303200101\",\"total_amount\":\"88.88\",\"subject\":\"huaweiMate60pro\",\"goods_detail\":{\"goods_id\":\"sp_001\",\"goods_name\":\"huaweiMate60pro 1T\"},\"order_type\":\"食品\"}";
    ObjectMapper mapper = new ObjectMapper();
    // 获取根节点
    JsonNode node = mapper.readTree(orderInfo);

    // 从根节点获取属性为order_id的值
    JsonNode orderIdNode=node.get("order_id");
    //order_id=>"202303200101"
    System.out.println("order_id=>"+orderIdNode);

    JsonNode goodsDetailNode=node.get("goods_detail");
    //goodsDetailNode=>{"goods_id":"sp_001","goods_name":"huaweiMate60pro"}
    System.out.println("goodsDetailNode=>"+goodsDetailNode);
    //获取goods_detailJSON中的值
    JsonNode goodsIdNode=goodsDetailNode.get("goods_id");
    //goods_id=>"sp_001"
    System.out.println("goods_id=>"+goodsIdNode);
}

1.1.2、结果输出

3845937b29b14270bd00fdc0bb131b92.png

1.2、通过循环的方式获取JSON中的所有值

1.2.1、测试代码

@Test
public void  parseJson() throws Exception{
    //创建json字符串,模拟从外界接收的订单信息
    //order_id:订单id       total_amount:总价格  subject:产品信息
    //goods_detail:商品id  order_type:订单类型
    //其中goods_detail属性对应的值还是JSON字符串
    String orderInfo="{\"order_id\":\"202303200101\",\"total_amount\":\"88.88\",\"subject\":\"huaweiMate60pro\",\"goods_detail\":{\"goods_id\":\"sp_001\",\"goods_name\":\"huaweiMate60pro 1T\"},\"order_type\":\"食品\"}";
    ObjectMapper mapper = new ObjectMapper();
    // 获取根节点
    JsonNode node = mapper.readTree(orderInfo);

    //通过循环的方式获取JSON的值
    Iterator<JsonNode> iterator = node.elements();
    while (iterator.hasNext()) {
        JsonNode student = iterator.next();
        // 获取节点文本
        //String name=student.get("goods_id").asText();
        System.out.println(student);
    }
}

1.2.2、结果输出

2e9995c760674d20bbbfa42a1bda3fc6.png

2、JSON与Object、Map、List相互转化

使用地址:https://mp.csdn.net/mp_blog/creation/editor/134275828

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雾林小妖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值