当前位置: 首页 > news >正文

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、结果输出

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、结果输出

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

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

相关文章:

  • golang 2018,go 1.19安装Gin
  • 爬虫项目(13):使用lxml抓取相亲信息
  • 数据结构线性表——栈
  • PlayCanvas通过IFrame嵌入页面如何与canvasplay脚本通讯
  • 安防监控EasyCVR视频汇聚平台无法接入Ehome5.0是什么原因?该如何解决?
  • Linux--gcc/g++
  • 【机试题】编写一个Java函数,实现批量获取数据的功能
  • 【nlp】1.4 文本特征处理(n-gram特征、文本长度规范:补齐与截断)
  • 卷积操作中的padding和strides
  • Sprint Boot 学习路线 6
  • Socket网络编程
  • 通讯协议学习之路(实践部分):SPI开发实践
  • hadoop
  • C/C++数据结构之链表题目答案与解析
  • Apipost IDEA插件如何使用
  • Python爬虫——入门爬取网页数据
  • rhcsa-权限
  • AR打卡小程序:构建智能办公的新可能
  • 某XX自考小程序的AES加密分析
  • 【LeetCode刷题笔记】栈和队列
  • 朝鲜称将在各领域采取反制措施,应对美国敌对挑衅
  • 工人日报:应对“职场肥胖”,健康与减重同受关注
  • 博物馆日|为一个展奔赴一座城!上海171家博物馆等你来
  • 刘强东坐镇京东一线:管理层培训1800人次,最注重用户体验
  • 百色一女子称家委会强制排班被迫抱婴儿校门口站岗?区教育局:自愿参与
  • 呼吸医学专家杜晓华博士逝世,终年50岁