知識庫 / JSON / Jackson RSS 訂閱

如何將 JsonNode 轉換為 ObjectNode

Jackson
HongKong
6
09:45 PM · Dec 05 ,2025

1. 引言

使用 Java 處理 JSON(JavaScript 對象表示法)通常涉及使用諸如 Jackson 之類的庫,它提供了各種類來表示這種數據類型,例如 <em >JsonNode</em><em >ObjectNode</em>

在本教程中,我們將 探索如何將 JsonNode 轉換為 ObjectNodeJava 中。這是一個必要的步驟,當我們需要在代碼中直接操縱數據時。

2. 理解 JsonNodeObjectNode

JsonNode 是 Jackson 庫中的一個抽象類,代表 JSON 樹中的節點。它是所有節點的基類,能夠存儲不同類型的數據,包括對象、數組、字符串、數字、布爾值和 null 值。 JsonNode 實例是不可變的,這意味着你不能設置它們的屬性。

ObjectNode 可以定義為 JsonNode 的可變子類,專門代表對象節點。它通過提供方法來添加、刪除和修改對象中的鍵值對,允許對這些類型的對象進行操作。除了操作方法之外,ObjectNode 還提供方便的訪問器,例如 asIntasTextasBoolean,以便輕鬆從對象節點檢索相應的數據類型。

3. 導入 Jackson

Jackson 庫提供廣泛的功能,用於高效地讀取、寫入和操作 JSON 數據。

在開始使用 Jackson 之前,務必在項目中的 <em>pom.xml</em> 中添加必要的依賴:依賴

<dependency>
    <groupId>com.fasterxml.jackson.dataformat</groupId>
    <artifactId>jackson-dataformat-xml</artifactId>
    <version>2.14.2</version>
</dependency>

4. 執行轉換

假設我們定義一個簡單的JSON對象:

{
   "name":"John",
   "gender":"male",
   "company":"Baeldung",
   "isEmployee": true,
   "age": 30
}

我們將在代碼中將其聲明為一個 String 類型的值:

public static String jsonString = "{\"name\": \"John\", \"gender\": \"male\", \"company\": \"Baeldung\", \"isEmployee\": true, \"age\": 30}";

讓我們首先利用 Jackon 的 ObjеctMappеr 類將這個字符串轉換為一個 JsonNodе,使用 ObjectMapper.readTree() 方法。之後,我們可以簡單地將其轉換為一個 ObjеctNodе

ObjectMapper objectMapper = new ObjectMapper();
JsonNode jsonNode = objectMapper.readTree(jsonString);
ObjectNode objectNode = (ObjectNode) jsonNode;

最後,我們通過一系列斷言來驗證轉換後的數據完整性,該轉換是從 JsonNodeObjectNode 的過程:

assertEquals("John", objectNode.get("name").asText());
assertEquals("male", objectNode.get("gender").asText());
assertEquals("Baeldung", objectNode.get("company").asText());
assertTrue(objectNode.get("isEmployee").asBoolean());
assertEquals(30, objectNode.get("age").asInt());

5. 結論

JsonNode 轉換為 ObjectNode 的過程在利用 Jackson 庫處理 JSON 數據時起着關鍵作用。

在本文中,我們展示瞭如何通過 Jackson 的 ObjectMapper 類來執行此轉換。

user avatar
0 位用戶收藏了這個故事!
收藏

發佈 評論

Some HTML is okay.