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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/133531.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

第二章 03Java基础-IDEA相关叙述

文章目录 前言一、IDEA概述二、IDEA下载和安装三、IDEA项目结构介绍四、IDEA的项目和模块操作总结前言 今天我们学习Java基础,IDEA下载以及相关配置和基础使用方法 一、IDEA概述 1.IDEA全称IntelliJ IDEA,是用于Java语言开发的集成工具,是业界公认的目前用于Java程序开发最…

Leetcode Hot100之六:42.接雨水

题目 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 提示&#xff1a; n height.length 1 < n < 2 * 10^4 0 < height[i] < 10^5 思路 暴力循环&#xff1a; 原本的思路是左边界i从左到…

阿里云从公网IP转为弹性公网IP,同时绑定多个IP教程

先将云服务器ECS 转为弹性IP 购买新的弹性辅助网卡 购买弹性公网iP 购买之后选择绑定资源选择第二步购买的网卡 进入ECS 终端 ,输入 ip address可以查看到eth1 的对应mac 地址 终端输入 vi /etc/sysconfig/network-scripts/ifcfg-eth1保存一下信息 DEVICEeth1 #表示新配置…

RK3568平台 查看内存的基本命令

一.free命令 free命令显示系统使用和空闲的内存情况&#xff0c;包括物理内存、交互区内存(swap)和内核缓冲区内存。共享内存将被忽略。 Mem 行(第二行)是内存的使用情况。 Swap 行(第三行)是交换空间的使用情况。 total 列显示系统总的可用物理内存和交换空间大小。 used 列显…

《Redis实战》笔记

文章目录 1.字符串命令2.列表命令3.集合命令4.散列命令5.有序集合命令6.发布订阅命令7.其他命令8.redis事务9.键的过期时间10.redis的持久化 1.字符串命令 2.列表命令 3.集合命令 4.散列命令 5.有序集合命令 6.发布订阅命令 7.其他命令 8.redis事务 5个命令&#xff1a;WATCH …

Spring IoC注解式开发

2023.11.11 注解的存在主要是为了简化XML的配置。Spring6倡导全注解开发。 负责声明Bean的注解&#xff0c;常见的包括四个&#xff1a; ComponentControllerServiceRepository 通过源码可以发现&#xff0c;Controller、Service、Repository这三个注解都是Component注解的别名…

开发模型(瀑布、螺旋、scrum) 和 测试模型(V、W)、增量和迭代、敏捷(思想)及敏捷开发 scrum

&#x1f9f8;欢迎来到dream_ready的博客&#xff0c;&#x1f4dc;相信您对这篇博客也感兴趣o (ˉ▽ˉ&#xff1b;) 震惊&#xff01;测试人员对BUG的全方位解析&#xff0c;测试的执行和BUG管理&#xff01; 原来测试人员遇到BUG是这样返回给开发的&#xff01;什么是BUG&am…

文件管理技巧:按文件容量大小分类,自动移动至目标文件夹的方法

按文件容量大小分类可以帮助快速识别和筛选出不同大小的文件。这样做有很多好处。首先&#xff0c;可以轻松地查找和访问特定大小的文件&#xff0c;提高工作效率。其次&#xff0c;通过将不同大小的文件分类&#xff0c;可以更好地了解和掌控文件的使用情况&#xff0c;避免存…

从windows iso文件中提取install.wim

1、首先从微软官方下载需要的windows镜像 https://www.microsoft.com/zh-cn/software-download/windows10/ 2、在下载的iso文件右键&#xff0c;打开压缩包&#xff0c;在sources文件夹下&#xff0c;应该就可以看到install.wim了。但似乎在最新的win10版本&#xff0c;微软采…

redis: 记录一次线上redis内存占用过大问题解决过程

引言 记录一次线上redis占用过大的排查过程&#xff0c;供后续参考 问题背景 测试同事突然反馈测试环境的web系统无法登陆&#xff0c;同时发现其他子系统也存在各类使用问题 排查过程 1、因为首先反馈的是测试环境系统无法登陆&#xff0c;于是首先去查看了登陆功能的报错…

jupyter notebook添加markdown目录

jupyternotebook添加markdown目录 1. 安装python包2. 安装JavaScript和CSS文件3. 启用扩展4. 设置markdown选项 1. 安装python包 官方安装 使用pip pip install jupyter_contrib_nbextensions # 或者 pip install https://github.com/ipython-contrib/jupyter_contrib_nbext…

【Spring】SpringBoot日志

SpringBoot日志 日志概述日志使用打印日志获取日志对象使用日志对象打印日志日志框架介绍门面模式SLF4J框架介绍(simple logging facade for java) 日志格式说明日志级别日志级别的分类日志级别的使用 日志配置配置日志级别日志持久化配置日志文件的路径和文件名配置日志文件的…

若依如何进行页面路由跳转,路由跳转时如何携带参数(超详细图文教程)

我们经常会有这样需求&#xff0c;当我们在一个页面时&#xff0c;想要跳转到另一个页面&#xff0c;但是跳转的同时还需要携带参数。那么这种情况在若依系统中该如何做呢&#xff0c;下面我们来说一下。 文章目录 问题提出&#xff1a;一、创建目标页面的路由(也就是图2的路由…

到底是什么是Python?语言的核心是什么?

文章目录 前言一、为什么提出python编程的核心是什么&#xff1f;二、Python需要REPL&#xff1f;三、Python的哪些部分需要被视为“Python”&#xff1f;四、需要多少兼容性才能有用&#xff1f;Python技术资源分享1、Python所有方向的学习路线2、学习软件3、精品书籍4、入门学…

msvcp140.dll丢失的解决方法win7系统,全面详细解析

在Windows 7系统中&#xff0c;msvcp140.dll是一个非常重要的动态链接库文件&#xff0c;它负责许多应用程序和系统的正常运行。然而&#xff0c;由于各种原因&#xff0c;msvcp140.dll文件可能会丢失或损坏&#xff0c;导致系统出现错误提示、程序无法启动等问题。本文将详细介…

QT 布局管理综合实例

通过一个实例基本布局管理&#xff0c;演示QHBoxLayout类、QVBoxLayout类及QGridLayout类效果 本实例共用到四个布局管理器&#xff0c;分别是 LeftLayout、RightLayout、BottomLayout和MainLayout。 在源文件“dialog.cpp”具体代码如下&#xff1a; 运行效果&#xff1a; Se…

《Swin Transformer: Hierarchical Vision Transformer using Shifted Windows》阅读笔记

论文标题 《Swin Transformer: Hierarchical Vision Transformer using Shifted Windows》 Swin 这个词貌似来自后面的 Shifted WindowsShifted Windows&#xff1a;移动窗口Hierarchical&#xff1a;分层 作者 微软亚洲研究院出品 初读 摘要 提出 Swin Transformer 可以…

【Gradle-12】分析so文件和依赖的关系

1、前言 在包大小的占比中&#xff0c;so文件的占比往往是最高的&#xff0c;动辄几兆的大小多一个都会把包大小的指标打爆。 而在各厂商要求对手机CPU ARM架构进行分包适配的情况下&#xff0c;你更需要知道哪些依赖是没有适配v7a/v8a的&#xff0c;这将影响你的APP在应用市场…

基于SSM的智能物业管理网站的设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

Scrum Master 如何更好的支持PO?

在过去几年中&#xff0c;和许多Scrum Master交流时&#xff0c;我遇到一个令人担忧的模式。虽然我们有Scrum指南和其他补充资源&#xff0c;许多Scrum Master&#xff0c;特别是刚起步的Scrum Master们&#xff0c;还在日复一日的为如何帮助Product Owner而挣扎着。 以下是我…