温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Java中怎么实现动态的增删改查属性

发布时间:2021-07-02 15:06:38 来源:亿速云 阅读:520 作者:Leah 栏目:编程语言

这篇文章将为大家详细讲解有关Java中怎么实现动态的增删改查属性,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

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

5. 扩展

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

Java中怎么实现动态的增删改查属性

关于Java中怎么实现动态的增删改查属性就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI