成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Java對象轉JSON時如何動態的增刪改查屬性

開發 后端
日常開發中少不了 JSON 處理,少不了需要在 JSON 中添加額外字段或者刪除特定字段的需求。今天我們就使用Jackson類庫來實現這個功能。

[[349154]]

1. 前言

日常開發中少不了 JSON 處理,少不了需要在 JSON 中添加額外字段或者刪除特定字段的需求。今天我們就使用Jackson類庫來實現這個功能。

2. JSON 字符串增加額外字段

假如我們有這樣結構的 JSON:

  1.     "username":"felord.cn"
  2.     "age":18 

期望增加一個性別字段gender:

  1.     "username""felord.cn"
  2.     "age": 18, 
  3.     "gender""male" 

首先使用ObjectMapper加載 JSON 字符串,為ObjectNode:

  1. ObjectNode jsonNodes = objectMapper.readValue(json, ObjectNode.class); 

ObjectNode提供了很多操作 JSON 屬性的方法:

  • get 根據索引或者字段名獲取對應的JsonNode。
  • put 系列方法 提供了將基本類型、null值、對象、數組、原始值添加到 JSON 的能力。

正好我們可以借助于put方法來完成額外新增字段,完整的代碼片段:

  1. String json = "{\n" + 
  2.         "    \"username\":\"felord.cn\",\n" + 
  3.         "    \"age\":18\n" + 
  4.         "}"
  5.  
  6. ObjectMapper objectMapper = new ObjectMapper(); 
  7.  
  8. ObjectNode jsonNodes = objectMapper.readValue(json, ObjectNode.class); 
  9. jsonNodes.put("gender""male"); 
  10. String newJson = objectMapper.writeValueAsString(jsonNodes); 
  11. // newJson = {"username":"felord.cn","age":18,"gender":"male"

3. 對象轉 JSON 時新增字段

有時候我們定義的對象沒有包含特定的字段,但是轉成 JSON 時同樣需要有額外的字段。跟章節 2類似,,只不過提供的不再是 JSON 字符串而是 Java 對象:

  1. /** 
  2.  * @author felord.cn 
  3.  * @since 11:02 
  4.  */ 
  5. @Data 
  6. public class User { 
  7.     private String username; 
  8.     private Integer age; 

其實思路很明確,只要我們能夠將對象轉換為ObjectNode就可以如法炮制。ObjectMapper提供了valueToTree方法可以實現這一點,所以對象轉 JSON 時新增字段完整的 DEMO 為:

  1. User user = new User(); 
  2. user.setUsername("felord.cn"); 
  3. user.setAge(18); 
  4.  
  5. ObjectMapper objectMapper = new ObjectMapper(); 
  6. ObjectNode jsonNodes = objectMapper.valueToTree(user); 
  7. jsonNodes.put("gender""male"); 
  8. String newJson = objectMapper.writeValueAsString(jsonNodes); 
  9. // newJson = {"username":"felord.cn","age":18,"gender":"male"

4. 移除屬性

無論是 JSON 字符串或者 Java 對象轉 JSON 時,移除屬性跟上面的思路一樣,只需要調用remove方法即可,這里不再演示。

5. 擴展

上面的所有操作都是借助于了Jackson中的JsonNode派生的 JSON 節點類完成的,關系如下:

JsonNode

JsonNode可以細粒度的訪問 JSON 信息,提供了非常有用的 JSON 對象操作 API,但是很多人在有相關需求的時候并不能夠想到它,所以你不需要具體的記住這些 API,只需要記住它可以操作 JSON 即可。

6. 總結

本文對 Jackson 動態的增刪改查 JSON 進行了介紹,牽引出一個很重要的操作工具JsonNode。充分利用手中已有的資源來解決問題,無需自己造輪子,也不必引入新的依賴。

本文轉載自微信公眾號「碼農小胖哥」,可以通過以下二維碼關注。轉載本文請聯系碼農小胖哥公眾號。

 

責任編輯:武曉燕 來源: 碼農小胖哥
相關推薦

2023-02-27 07:37:56

Curl操作SQL

2012-03-21 09:49:42

Java

2023-06-08 08:13:43

2021-08-09 13:34:14

Python開發數據

2024-11-18 00:22:34

2019-11-07 15:39:36

數據庫MySQL文章

2012-04-19 10:06:16

ibmdw

2025-04-11 10:13:00

數據庫APIFastAPI

2012-04-12 09:23:15

達夢數據庫

2024-08-29 08:58:30

JPA編寫數據操

2009-11-13 15:54:26

ADO.NET數據庫操

2022-08-01 09:44:07

架構MySQL數據庫

2021-01-18 14:04:49

java監控操作

2021-07-05 09:24:06

MySQL SQL 語句數據庫

2024-09-02 09:26:28

2021-05-07 08:03:05

JS動態合并

2020-05-28 16:50:59

源碼分析 MybatisJava

2021-10-20 09:04:21

Spring Beanscope數據庫

2025-02-07 09:11:04

JSON對象策略

2021-01-31 22:54:39

Java Jsoy開發
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 夜夜爽99久久国产综合精品女不卡 | 国产精品1区2区3区 中文字幕一区二区三区四区 | 国产欧美精品区一区二区三区 | 中文字幕1区 | 99久久精品免费看国产小宝寻花 | 一区二区在线观看av | av一区二区在线观看 | 天堂色网 | 国产伦精品一区二区三区精品视频 | 国产精品日韩一区二区 | 国产精品我不卡 | 久久久久国产一区二区三区四区 | 在线免费激情视频 | 成人国产一区二区三区精品麻豆 | 免费影视在线观看 | 爱爱免费视频 | 日韩欧美中文字幕在线观看 | 一区二区日韩 | 国产日韩一区二区三区 | 午夜影院普通用户体验区 | 91av国产在线视频 | 久久这里只有精品首页 | 91免费高清视频 | 欧美韩一区二区三区 | 97久久精品午夜一区二区 | 成人中文字幕在线观看 | 高清视频一区二区三区 | 国产精品精品久久久久久 | 浮生影院免费观看中文版 | 国产精品久久久久久影视 | 精品一区二区在线观看 | 久久精品国产精品青草 | 国产精品国产a | 欧美一级片久久 | 久久99国产精品 | 欧美精品一二区 | 特一级黄色毛片 | 国产精品高清在线 | 一区二区三区av | 久久久www成人免费精品 | 成人精品国产一区二区4080 |