-
Java 对象转JSON时 动态 增删改查属性
2020-11-03 13:27:062. JSON字符串增加额外字段 假如我们有这样结构的JSON: { "username":"felord.cn", "age":18 } 期望增加一个性别字段gender: { "username": "felord.cn", "age": 18, "gender": "male" } 首1. 前言
日常开发中少不了JSON处理,少不了需要在JSON中添加额外字段或者删除特定字段的需求。今天我们就使用Jackson类库来实现这个功能。
2. JSON字符串增加额外字段
假如我们有这样结构的JSON:
{ "username":"felord.cn", "age":18 }
期望增加一个性别字段
gender
:{ "username": "felord.cn", "age": 18, "gender": "male" }
首先使用
ObjectMapper
加载JSON字符串,为ObjectNode
:ObjectNode jsonNodes = objectMapper.readValue(json, ObjectNode.class);
ObjectNode
提供了很多操作JSON属性的方法:- get 根据索引或者字段名获取对应的
JsonNode
。 - put系列方法 提供了将基本类型、
null
值、对象、数组、原始值添加到JSON的能力。
正好我们可以借助于
put
方法来完成额外新增字段,完整的代码片段://java项目www.fhadmin.org String json = "{\n" + " \"username\":\"felord.cn\",\n" + " \"age\":18\n" + "}"; ObjectMapper objectMapper = new ObjectMapper(); ObjectNode jsonNodes = objectMapper.readValue(json, ObjectNode.class); jsonNodes.put("gender", "male"); String newJson = objectMapper.writeValueAsString(jsonNodes); // newJson = {"username":"felord.cn","age":18,"gender":"male"}
3. 对象转JSON时新增字段
有时候我们定义的对象没有包含特定的字段,但是转成JSON时同样需要有额外的字段。跟章节2类似,,只不过提供的不再是JSON字符串而是Java对象:
/** * @author java项目www.fhadmin.org * @since 11:02 */ @Data public class User { private String username; private Integer age; }
其实思路很明确,只要我们能够将对象转换为
ObjectNode
就可以如法炮制。ObjectMapper
提供了valueToTree
方法可以实现这一点,所以对象转JSON时新增字段完整的DEMO为:User user = new User(); user.setUsername("felord.cn"); user.setAge(18); //java项目www.fhadmin.org ObjectMapper objectMapper = new ObjectMapper(); ObjectNode jsonNodes = objectMapper.valueToTree(user); jsonNodes.put("gender", "male"); String newJson = objectMapper.writeValueAsString(jsonNodes); // newJson = {"username":"felord.cn","age":18,"gender":"male"}
4. 移除属性
无论是JSON字符串或者Java对象转JSON时,移除属性跟上面的思路一样,只需要调用
remove
方法即可,这里不再演示。5. 扩展
上面的所有操作都是借助于了Jackson中的
JsonNode
派生的JSON节点类完成的,关系如下:JsonNode
可以细粒度的访问JSON信息,提供了非常有用的JSON对象操作API,但是很多人在有相关需求的时候并不能够想到它,所以你不需要具体的记住这些API,只需要记住它可以操作JSON即可。6. 总结
本文对Jackson动态的增删改查JSON进行了介绍,牵引出一个很重要的操作工具
JsonNode
。充分利用手中已有的资源来解决问题 - get 根据索引或者字段名获取对应的
-
对象转数组_Java对象转JSON时如何动态的增删改查属性
2021-01-13 14:18:501. 前言日常开发中少不了JSON处理,少不了需要在JSON中...2. JSON字符串增加额外字段假如我们有这样结构的JSON:{ "username":"felord.cn", "age":18 }期望增加一个性别字段gender:{ "username": "felord.cn", ...1. 前言
日常开发中少不了JSON处理,少不了需要在JSON中添加额外字段或者删除特定字段的需求。今天我们就使用Jackson类库来实现这个功能。
2. JSON字符串增加额外字段
假如我们有这样结构的JSON:
{ "username":"felord.cn", "age":18 }
期望增加一个性别字段
gender
:{ "username": "felord.cn", "age": 18, "gender": "male" }
首先使用
ObjectMapper
加载JSON字符串,为ObjectNode
:ObjectNode jsonNodes = objectMapper.readValue(json, ObjectNode.class);
ObjectNode
提供了很多操作JSON属性的方法:- get 根据索引或者字段名获取对应的
JsonNode
。 - put系列方法 提供了将基本类型、
null
值、对象、数组、原始值添加到JSON的能力。
正好我们可以借助于put方法来完成额外新增字段,完整的代码片段:
String json = "{n" + " "username":"felord.cn",n" + " "age":18n" + "}"; ObjectMapper objectMapper = new ObjectMapper(); ObjectNode jsonNodes = objectMapper.readValue(json, ObjectNode.class); jsonNodes.put("gender", "male"); String newJson = objectMapper.writeValueAsString(jsonNodes); // newJson = {"username":"felord.cn","age":18,"gender":"male"}
3. 对象转JSON时新增字段
有时候我们定义的对象没有包含特定的字段,但是转成JSON时同样需要有额外的字段。跟章节2类似,,只不过提供的不再是JSON字符串而是Java对象:
/** * @author felord.cn * @since 11:02 */ @Data public class User { private String username; private Integer age; }
其实思路很明确,只要我们能够将对象转换为
ObjectNode
就可以如法炮制。ObjectMapper
提供了valueToTree
方法可以实现这一点,所以对象转JSON时新增字段完整的DEMO为:User user = new User(); user.setUsername("felord.cn"); user.setAge(18); ObjectMapper objectMapper = new ObjectMapper(); ObjectNode jsonNodes = objectMapper.valueToTree(user); jsonNodes.put("gender", "male"); String newJson = objectMapper.writeValueAsString(jsonNodes); // newJson = {"username":"felord.cn","age":18,"gender":"male"}
4. 移除属性
无论是JSON字符串或者Java对象转JSON时,移除属性跟上面的思路一样,只需要调用
remove
方法即可,这里不再演示。5. 扩展
上面的所有操作都是借助于了Jackson中的
JsonNode
派生的JSON节点类完成的,关系如下:JsonNode
可以细粒度的访问JSON信息,提供了非常有用的JSON对象操作API,但是很多人在有相关需求的时候并不能够想到它,所以你不需要具体的记住这些API,只需要记住它可以操作JSON即可。6. 总结
本文对Jackson动态的增删改查JSON进行了介绍,牵引出一个很重要的操作工具
JsonNode
。充分利用手中已有的资源来解决问题,无需自己造轮子,也不必引入新的依赖。链接:Java对象转JSON时如何动态的增删改查属性
出处:掘金
作者: 码农小胖哥 - get 根据索引或者字段名获取对应的
-
Java对象转JSON时如何动态的增删改查属性
2020-11-03 09:39:24JSON字符串增加额外字段 假如我们有这样结构的JSON: { “username”:“felord.cn”, “age”:18 } 期望增加一个性别字段gender: { “username”: “felord.cn”, “age”: 18, “gender”: “male” } 首先使用...- JSON字符串增加额外字段
假如我们有这样结构的JSON:
{
“username”:“felord.cn”,
“age”:18
}
期望增加一个性别字段gender:{
“username”: “felord.cn”,
“age”: 18,
“gender”: “male”
}
首先使用ObjectMapper加载JSON字符串,为ObjectNode:ObjectNode jsonNodes = objectMapper.readValue(json, ObjectNode.class);
ObjectNode提供了很多操作JSON属性的方法:get 根据索引或者字段名获取对应的JsonNode。
put系列方法 提供了将基本类型、null值、对象、数组、原始值添加到JSON的能力。
正好我们可以借助于put方法来完成额外新增字段,完整的代码片段:String json = “{\n” +
" “username”:“felord.cn”,\n" +
" “age”:18\n" +
“}”;ObjectMapper objectMapper = new ObjectMapper();
ObjectNode jsonNodes = objectMapper.readValue(json, ObjectNode.class);
jsonNodes.put(“gender”, “male”);
String newJson = objectMapper.writeValueAsString(jsonNodes);
// newJson = {“username”:“felord.cn”,“age”:18,“gender”:“male”}
3. 对象转JSON时新增字段
有时候我们定义的对象没有包含特定的字段,但是转成JSON时同样需要有额外的字段。跟章节2类似,,只不过提供的不再是JSON字符串而是Java对象:/**
- @author felord.cn
- @since 11:02
*/
@Data
public class User {
private String username;
private Integer age;
}
其实思路很明确,只要我们能够将对象转换为ObjectNode就可以如法炮制。ObjectMapper提供了valueToTree方法可以实现这一点,所以对象转JSON时新增字段完整的DEMO为:
User user = new User();
user.setUsername(“felord.cn”);
user.setAge(18);ObjectMapper objectMapper = new ObjectMapper();
ObjectNode jsonNodes = objectMapper.valueToTree(user);
jsonNodes.put(“gender”, “male”);
String newJson = objectMapper.writeValueAsString(jsonNodes);
// newJson = {“username”:“felord.cn”,“age”:18,“gender”:“male”}
4. 移除属性
无论是JSON字符串或者Java对象转JSON时,移除属性跟上面的思路一样,只需要调用remove方法即可,这里不再演示。
亚马逊测评 www.yisuping.com - JSON字符串增加额外字段
-
转json_Java对象转JSON时如何动态的增删改查属性
2021-01-14 04:08:131. 前言 日常开发中少不了JSON处理,少不了需要在JSON中...2. JSON字符串增加额外字段 假如我们有这样结构的JSON: { "username":"felord.cn", "age":18 } 期望增加一个性别字段gender: { "username": "felord.cn...1. 前言
日常开发中少不了JSON处理,少不了需要在JSON中添加额外字段或者删除特定字段的需求。今天我们就使用Jackson类库来实现这个功能。
2. JSON字符串增加额外字段
假如我们有这样结构的JSON:
{ "username":"felord.cn", "age":18 }
期望增加一个性别字段
gender
:{ "username": "felord.cn", "age": 18, "gender": "male" }
首先使用
ObjectMapper
加载JSON字符串,为ObjectNode
:ObjectNode jsonNodes = objectMapper.readValue(json, ObjectNode.class);
ObjectNode
提供了很多操作JSON属性的方法:- get 根据索引或者字段名获取对应的
JsonNode
。 - put系列方法 提供了将基本类型、
null
值、对象、数组、原始值添加到JSON的能力。
正好我们可以借助于
put
方法来完成额外新增字段,完整的代码片段:String json = "{n" + " "username":"felord.cn",n" + " "age":18n" + "}"; ObjectMapper objectMapper = new ObjectMapper(); ObjectNode jsonNodes = objectMapper.readValue(json, ObjectNode.class); jsonNodes.put("gender", "male"); String newJson = objectMapper.writeValueAsString(jsonNodes); // newJson = {"username":"felord.cn","age":18,"gender":"male"}
3. 对象转JSON时新增字段
有时候我们定义的对象没有包含特定的字段,但是转成JSON时同样需要有额外的字段。跟章节2类似,,只不过提供的不再是JSON字符串而是Java对象:
/** * @author felord.cn * @since 11:02 */ @Data public class User { private String username; private Integer age; }
其实思路很明确,只要我们能够将对象转换为
ObjectNode
就可以如法炮制。ObjectMapper
提供了valueToTree
方法可以实现这一点,所以对象转JSON时新增字段完整的DEMO为:User user = new User(); user.setUsername("felord.cn"); user.setAge(18); ObjectMapper objectMapper = new ObjectMapper(); ObjectNode jsonNodes = objectMapper.valueToTree(user); jsonNodes.put("gender", "male"); String newJson = objectMapper.writeValueAsString(jsonNodes); // newJson = {"username":"felord.cn","age":18,"gender":"male"}
4. 移除属性
无论是JSON字符串或者Java对象转JSON时,移除属性跟上面的思路一样,只需要调用
remove
方法即可,这里不再演示。5. 扩展
上面的所有操作都是借助于了Jackson中的
JsonNode
派生的JSON节点类完成的,关系如下:JsonNode
可以细粒度的访问JSON信息,提供了非常有用的JSON对象操作API,但是很多人在有相关需求的时候并不能够想到它,所以你不需要具体的记住这些API,只需要记住它可以操作JSON即可。6. 总结
本文对Jackson动态的增删改查JSON进行了介绍,牵引出一个很重要的操作工具
JsonNode
。充分利用手中已有的资源来解决问题,无需自己造轮子,也不必引入新的依赖。好了今天的分享就到这里,多多关注:码农小胖哥 及时获取更多有效的编程干货。关注微信公众号:Felordcn 获取更多干货
- get 根据索引或者字段名获取对应的
-
Flex3中如何实现Object对象动态添加属性
2011-05-10 16:15:47小弟在做Flex开发时,希望让一个Object对象动态增加属性,例如,我希望让这个Object,拥有这个数组中两个属性: <pre name="code" class="java"> var obj:Object = new Object(); var field:Array = new ... -
android json字符串转成json对象_Java对象转JSON时如何动态的增删改查属性
2020-11-29 06:28:55作者:码农小胖哥来源:码农小胖哥1.前言日常开发中少不了 JSON 处理,少不了需要在 ...2.JSON 字符串增加额外字段假如我们有这样结构的 JSON:{"username":"felord.cn","age":18}期望增加一个性别字段gender:{"usern... -
Java对象转JSON动态设置字段
2020-11-03 15:38:11序列化成JSON时,处理动态增加一个sex字段 { "name": "张三", "age": 20, "sex": "男" } 方法一 利用@JsonAnyGetter注解进行扩展User的自定义属性 改造User类: @Data public class User { private String name... -
拜托!大哥,Java对象转JSON时如何动态的增删改查属性这道题很简单!
2020-11-04 19:45:18一. 前言 日常开发中少不了JSON处理,少不了需要在JSON中添加额外字段或者删除特定字段的需求。...期望增加一个性别字段gender: { "username": "felord.cn", "age": 18, "gender": "male" } 首先使用ObjectMapp -
java反射理解,通过反射获取并修改类的对象,方法和属性
2019-01-24 18:58:32显然可以提高java灵活性和增加应用场景 核心 Class c=Class.forName("reflection.User"); 这里声明一个类的对象(注意Class中c是大写,class是关键字) 然后获取路径(包名+类名),这样c虽然不是User类... -
Java面向对象8——对象转型,动态绑定,抽象类,final关键字及接口
2016-10-21 15:33:27一个基类的引用不可以访问其子类对象新增加的成员(属性和方法)。 可以使用引用变量instance of 类名 来判断该引用型变量所“指向”的对象是否属于该类或该类的子类。 子类的对象可以当做基类的对象来使用称作向上... -
Java 面对对象
2019-03-16 14:38:52隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别。 java里的class 把属性和方法都封装起来,用访问修饰符来控制访问级别。 继承 在一个人现有类的基础上,增加新的方法或重写已... -
02 Java面向对象—第4节 面向对象高级~数组增删查案例(动态扩容)
2021-01-25 03:03:05增加方法 add : 可以向数组属性中依次存储 Object,数组内容存满时,需实现动态扩容(详解在下面)。 删除方法 remove :可以根据数据或下标,从数组属性中删除 Object 数据,删除后,数组后续元素需前移。 查询... -
Java对象比较器,详细记录对象前后变化的方法
2018-05-21 23:40:14利用内省机制动态获取JavaBean对象监控的属性值(注意这里不能BeanUtils.getProperty(bean, name)这个方法,因为其转化出来的数值都是String类型的) 将变更前的对象和变更后的对象分别保存到Map... -
[Java][视频] 笔记-对象转型 和 动态绑定(多态)
2019-09-21 21:15:292 一个基类的引用不可以访问其子类对象新增加的成员(属性和方法)。 下面的例子可以好好研究一下: 二 、动态绑定(多态):polymoph 动态绑定(多态)是指“在执行期间”(而非编译期)判断所引用... -
java 利用反射 动态获取一个类的方法和属性,并执行所需方法
2019-12-09 19:02:44利用java反射来动态的进行类中方法的基本操作 作为开发项目中,在一定的应用场景下使用类的反射会使代码更简洁,增加复用性,以下写的一个测试可以参考下 此类反射的demo希望对您有用 废话不多说,上代码 创建的... -
使用JXPath访问java对象、集合和XML文件
2015-04-21 17:23:04属于jakarta的一部分,最新的版本是1.1,JXPath的主要功能在于一组java类库来使用XPath的方式访问符合JavaBeans规范的java类、java集合(Collections)、其他具有动态属性的对象(如Map、ServletContext等),... -
java代理的缘由及java动态代理
2019-06-06 13:29:00java号称万物皆对象,而实例对象的类 本身涵盖两个类型(类中嵌套类先不作分析),一是成员属性(表示这个对象是什么,拥有什么),而是成员方法(表示这个对象的动作,做什么)。 所以,“代理”主要就是在动作这... -
动态创建对象
2014-03-11 11:52:00动态操作对象的属性 需要给每个类添加元数据 动态创建对象 对原有的类不做任何更改,只需要增加一个宏就能实现动态创建 注:就是为了消除if else 可以在初始化静态成员变量前面加上__decl -
Java反射与动态代理
2015-05-07 20:45:00java动态代理可以在不改变被调用对象源码的前提下,在被调用方法前后增加自己的操作,极大地降低了模块之间的耦合性。这些都是java的基础知识,要想成为一名合格的程序猿,必须掌握! Java反射机制 JAVA反射机制... -
JAVA反射机制与动态代理
2017-05-28 15:13:02Java反射机制允许程序在运行时判断分析任意一个类...java动态代理可以在不改变被调用对象源码的前提下,在被调用方法前后增加自己的操作,极大地降低了模块之间的耦合性,Java的动态代理就是利用了反射的特性来实现的。 -
C++动态创建对象
2017-05-24 14:22:37动态操作对象的属性 需要给每个类添加原数据 对原有的类不做任何改,只需要增加一个宏就能够动态创建 4.动态创建对象 1)避免if,else编写,增加扩展性 2)将类名放到配置文件中,组件初步 组件A,主程序... -
Java工程师笔记-面向对象
2021-02-23 11:27:49方法:对象具有的各种动态行为 //如何把属性带到方法中使用 //方法重载,增加参数列表 one.eat(one.name); 类单一职责原则----有且只有一个引起功能变化的原因 如果在一个类中,承担的功能越多,它的交融、耦合... -
给某一个类新增加属性
2017-09-06 16:28:51java动态的给对象附加属性。20 假如现在有一个属性配置文件,我需要去读取里面的属性并且是产生一个对象获取它,比如有一个xxx.txt文件: a = 1 b = "hello" 我现在调用如下语句: ... -
理解java静态绑定和动态绑定
2017-12-16 01:49:17理解java的动态绑定和静态绑定之前需要了解继承和多态的一些相关概念。继承基于已存在的类构造新的类。通过继承获取父类的属性和方法,实现复用。在此基础上可以增加新的属性和方法满足新的需求。 继承是典型的”... -
Java 反射机制与动态代理的两种实现方式
2020-05-14 22:20:53java反射机制是一种程序运行时自省的机制,提供了在程序运行时动态的操作任何对象的属性和方法的能力。这样不同创建对象,就可以直接调用其中的任意方法。或者动态的获取某个对象的任意属性。而不用在代码中显示的...
-
455. Assign Cookies (Easy)
-
HWIDGen.zip
-
STM32F030F4P6核心板pdf原理图+ ALTIUM pcb布局+器件封装库文件库.zip
-
Vim基础篇实战
-
@CSDN官方
-
Java_001 输出三角形 21/02/26
-
时间序列数据库的秘密(二)——索引
-
CentOS-6.8-i386-minimal.iso映像文件
-
select下拉框option默认选中(php模板渲染)
-
C++MFC开发远程控制软件教程(VS2013)
-
opengl实现的太阳系
-
程序员必修基础套餐课
-
Linux系统编程50 信号- sigsuspend() 设置信号集状态 与 挂起 的原子操作
-
MySQL 高可用工具 heartbeat 实战部署详解
-
laravel-8-vue:laravle8 + vue3 + vue-router4 + element-plus-源码
-
记一次googleplay打包失败
-
Python启蒙到架构师的核心技术精讲课程
-
MySQL你该了解的那些事【服务端篇】
-
龙芯生态应用开发基础:C语言精要
-
android studio修改AndroidMainifest文件后,编译时报错并且不断恢复AndroidMainifest文件