人工智能

Java对象转JSON时如何动态的增删改查属性

时间:2010-12-5 17:23:32  作者:域名   来源:数据库  查看:  评论:0
内容摘要:1. 前言日常开发中少不了 JSON 处理,少不了需要在 JSON 中添加额外字段或者删除特定字段的需求。今天我们就使用Jackson类库来实现这个功能。2. JSON 字符串增加额外字段假如我们有这

1. 前言

日常开发中少不了 JSON 处理,对象少不了需要在 JSON 中添加额外字段或者删除特定字段的转J增删需求。今天我们就使用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值、转J增删对象、时属性数组、何动原始值添加到 JSON 的改查能力。

正好我们可以借助于put方法来完成额外新增字段,对象完整的转J增删代码片段:

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方法即可,这里不再演示。

5. 扩展

上面的所有操作都是借助于了Jackson中的JsonNode派生的 JSON 节点类完成的,关系如下:

JsonNode

JsonNode可以细粒度的云南idc服务商访问 JSON 信息,提供了非常有用的 JSON 对象操作 API,但是很多人在有相关需求的时候并不能够想到它,所以你不需要具体的记住这些 API,只需要记住它可以操作 JSON 即可。

6. 总结

本文对 Jackson 动态的增删改查 JSON 进行了介绍,牵引出一个很重要的操作工具JsonNode。充分利用手中已有的资源来解决问题,无需自己造轮子,也不必引入新的依赖。

本文转载自微信公众号「码农小胖哥」,可以通过以下二维码关注。转载本文请联系码农小胖哥公众号。

网站模板
copyright © 2025 powered by 益强资讯全景  滇ICP备2023006006号-31sitemap