JsonNode、ObjectNode和ArrayNode

我个人不喜欢fastjson,但是项目中很多地方用到json字符串转换对象但又不想创建pojo
所以使用jackson的JsonNode、ObjectNode和ArrayNode就非常好用,万能对象,这三
个对象是非常全面的,感兴趣的可以看下源码

JsonNode 只读,通常由ObjectMapper解析json字符串得到
ObjectNode 可修改, 继承JsonNode
ArrayNode 可修改, 继承JsonNode

ObjectNode类似fastjson的JSONObject
ArrayNode类似fastjson的JSONArray

ObjectNode objectNode0 = JsonNodeFactory.instance.objectNode();  
objectNode0.put("sub", "child");  ObjectNode objectNode = JsonNodeFactory.instance.objectNode();  
objectNode.put("aa","aa");  
objectNode.put("a1",111);  
objectNode.put("a2","123");  
objectNode.put("a4",true);  
objectNode.put("a5",objectNode0);  
System.out.println(objectNode);  ArrayNode arrayNode = JsonNodeFactory.instance.arrayNode();  
arrayNode.add(123);  
arrayNode.add("abd");  
arrayNode.add(true);  
arrayNode.add(objectNode0);  
System.out.println(arrayNode);// JsonNode 
String json = "{\n" +  "    \"id\": \"AaEXKZGjdBAQVxtqofPymQmJhuuuupGD\",\n" +  "    \"roleName\": \"临时角色uuuu\",\n" +  "    \"roleCode\": \"test20uuuu33120\",\n" +  "    \"description\": \"这是新建的临时角色123\",\n" +  "    \"createBy\": \"admin\",\n" +  "    \"createTime\": \"2023-09-10 19:57:26\",\n" +  "    \"updateBy\": null,\n" +  "    \"updateTime\": \"2023-09-10 19:57:26\"\n" +  "}";  
try {  JsonNode jsonNode = new ObjectMapper().readTree(json);  System.out.println(jsonNode);  
} catch (IOException e) {  
}

上面内容输出

{"aa":"aa","a1":111,"a2":"123","a4":true,"a5":{"sub":"child"}}
[123,"abd",true,{"sub":"child"}]
{"id":"AaEXKZGjdBAQVxtqofPymQmJhuuuupGD","roleName":"临时角色uuuu","roleCode":"test20uuuu33120","description":"这是新建的临时角色123","createBy":"admin","createTime":"2023-09-10 19:57:26","updateBy":null,"updateTime":"2023-09-10 19:57:26"}

jackson版本

<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.9.4</version>
</dependency>

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器学习——支持向量机

目录 一、基于最大间隔分隔数据 二、寻找最大间隔 1. 最大间隔 2. 拉格朗日乘子法 3. 对偶问题 三、SMO高效优化算法 四、软间隔 五、SMO算法实现 1. 简化版SMO算法 2. 完整版SMO算法 3. 可视化决策结果 六、核函数 1. 线性不可分——高维可分 2. 核函数 …

【大数据面试】MapReduce常见问题与答案

目录 介绍下MapReduce MapReduce优缺点 MapReduce架构 MapReduce工作原理 MapReduce哪个阶段最费时间 ✅MapReduce中的Combine是干嘛的?有什么好出? ✅MapReduce环形缓冲区是什么 ✅MapReduce为什么一定要有环型缓冲区 MapReduce为什么一定要有Shuffle过程 MapRedu…

Autosar通信实战系列08-Com模块相关开发问题总结

本文框架 前言1. Com模块重要接口回顾2. 如何让通过Com模块配置改善发送报文周期不准问题?3. UDS 0x28服务关闭或打开APP报文与Com模块的交互?4. 如何在Com层实现接收报文的超时,ARC及信号有效性监控?4.1 信号超时监控的配置4.2 报文ARC校验4.3 报文信号值有效性校验前言 …

linux命令绕过

WAF绕过命令执行 1 命令分隔符2 命令执行绕过2.1 绕过空格2.2 拼接2.3 编码2.4 单引号、双引号绕过2.5 反斜线绕过2.6 通配符绕过 1 命令分隔符 linux&#xff1a; && || & | ; # &&绕过 [rootlocalhost ~]# echo 123&& cat /etc/passwd 123 root:…

拾壹[11],缩放形状匹配,函数CreateScaledShapeModel/FindScaledShapeModel

函数CreateScaledShapeModel 函数功能 创建可缩放比例的形状匹配模板 C形式 LIntExport void CreateScaledShapeModel( const HObject& Template, const HTuple& NumLevels, const HTuple& AngleStart, const HTuple& AngleExtent, const HTuple& …

设计模式 原型模式 与 Spring 原型模式源码解析(包含Bean的创建过程)

原型模式 原型模式(Prototype模式)是指&#xff1a;用原型实例指定创建对象的种类&#xff0c;并且通过拷贝这些原型&#xff0c;创建新的对象。 原型模式是一种创建型设计模式&#xff0c;允许一个对象再创建另外一个可定制的对象&#xff0c;无需知道如何创建的细节。 工作原…

threejs 内置变量函数

参考glsl文档 threejs 内置变量 vertex shader highp vec4 gl_PointSize 点大小mediump float gl_Position 不用多说 fragment shader mediump vec4 gl_FragCoord 屏幕坐标系bool gl_FrontFacingmediump vec4 gl_FragColor 最重要的mediump vec4 gl_FragData[gl_MaxDrawBu…

新年跨年烟花超酷炫合集【内含十八个烟花酷炫效果源码】

❤️以下展示为全部烟花特效效果 ❤️下方仅展示部分代码 ❤️源码获取见文末 🎀HTML5烟花喷泉 <style> * {padding:0;margin:0; } html,body {positi

清华提出ViLa,揭秘 GPT-4V 在机器人视觉规划中的潜力

人类在面对简洁的语言指令时&#xff0c;可以根据上下文进行一连串的操作。对于“拿一罐可乐”的指令&#xff0c;若可乐近在眼前&#xff0c;下意识的反应会是迅速去拿&#xff1b;而当没看到可乐时&#xff0c;人们会主动去冰箱或储物柜中寻找。这种自适应的能力源于对场景的…

springboot的配置文件,以及spring boot自动装配的原理,bean的管理。

配置优先级&#xff1a; spring boot中自此三种格式的配置文件&#xff1a; server.port&#xff1a;8081 server.port&#xff1a;8082 server.port&#xff1a;8083 spring boot还支持两种外部配置&#xff1a; java系统属性&#x…

软件测试人才稀缺!揭秘为什么你找不到软件测试工作?

最近后台很多粉丝给我留言&#xff1a; 2023年软件测试已经崩盘了吗&#xff0c;为什么都找不到工作了&#xff1f; 确实&#xff0c;今年经济大环境不好&#xff0c;企业也都在降本增效&#xff0c;如果技术能力还在被应届生竞争岗位的阶段&#xff0c;只会越来越难。 找不…

【大数据面试】YARN常见问题与答案

目录 介绍下YARN YARN有几个模块 YARN工作机制 YARN有什么优势&#xff0c;能解决什么问题? YARN容错机制 YARN高可用 YARN调度器 YARN中Container是如何启动的? YARN的改进之处&#xff0c;Hadoop3.x相对于Hadoop 2.x? YARN监控 介绍下YARN YARN有几个模块 Yar…

74.搜索二维矩阵

题目 法1&#xff1a;二分搜索 剑指原题 class Solution {public boolean searchMatrix(int[][] matrix, int target) {int m matrix.length, n matrix[0].length;int i 0, j n - 1;while (i < m && j > 0) {if (matrix[i][j] target) {return true;} el…

从零开始在Linux服务器配置并运行YOLO8+Web项目

✅作者简介&#xff1a;大家好&#xff0c;我是 Meteors., 向往着更加简洁高效的代码写法与编程方式&#xff0c;持续分享Java技术内容。 &#x1f34e;个人主页&#xff1a;Meteors.的博客 &#x1f49e;当前专栏&#xff1a; 神经网络&#xff08;随缘更新&#xff09; ✨特色…

『OPEN3D』1.5.4 动手实现点云八叉树(OctoTree)最近邻

本专栏地址: https://blog.csdn.net/qq_41366026/category_12186023.html?spm=1001.2014.3001.5482 在二维和三维空间中,我们可以采用四叉树(Quad tree)和八叉树(Octree)这两种特定的数据结构来处理空间分割。这些树形结构可以看作是K-d树在不同维度下的扩展。…

SpringBoot的多环境开发

&#x1f648;作者简介&#xff1a;练习时长两年半的Java up主 &#x1f649;个人主页&#xff1a;程序员老茶 &#x1f64a; ps:点赞&#x1f44d;是免费的&#xff0c;却可以让写博客的作者开心好久好久&#x1f60e; &#x1f4da;系列专栏&#xff1a;Java全栈&#xff0c;…

JS - 闭包(Closure)

目录 1&#xff0c;什么是闭包2&#xff0c;创建闭包3&#xff0c;如何销毁闭包2.1&#xff0c;自动创建的闭包2.2&#xff0c;手动创建的闭包 4&#xff0c;闭包的特点和使用场景3.1&#xff0c;特点3.2&#xff0c;使用场景避免全局变量污染函数柯里化 5&#xff0c;闭包经典…

【高级网络程序设计】Block1总结

这一个Block分为四个部分&#xff0c;第一部分是Introduction to Threads and Concurrency &#xff0c;第二部分是Interruptting and Terminating a Thread&#xff0c;第三部分是Keep Threads safety&#xff1a;the volatile variable and locks&#xff0c;第四部分是Beyon…

【算法系列篇】递归、搜索和回溯(四)

文章目录 前言什么是决策树1. 全排列1.1 题目要求1.2 做题思路1.3 代码实现 2. 子集2.1 题目要求2.2 做题思路2.3 代码实现 3. 找出所有子集的异或总和再求和3.1 题目要求3.2 做题思路3.3 代码实现 4. 全排列II4.1 题目要求4.2 做题思路4.3 代码实现 前言 前面我们通过几个题目…

提升研究效率,尽在EndNote 21 forMac/win!

在科研领域&#xff0c;文献管理是一项至关重要的任务。研究人员需要快速而准确地收集、整理和引用大量的文献资料&#xff0c;以支持他们的研究工作。而EndNote 21作为一款功能强大的文献管理软件&#xff0c;能够帮助研究人员高效地管理文献资源&#xff0c;提升研究工作的效…