如何將 JsonNode 轉換為 ObjectNode

Jackson
Remote
0
07:50 PM · Nov 30 ,2025

1. 簡介

在Java中,使用JSON(JavaScript 對象表示法)通常涉及使用諸如Jackson之類的庫,該庫提供各種類來表示此類數據,例如JsonNodeObjectNode

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

2. 理解 JsonNodeObjеctNodе

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

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

3. 導入 Jackson

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

在與 Jackson 交互之前,務必在項目中的 pom.xml 中添加必要的依賴項:


<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}";

首先,我們利用Jackson的ObjectMappеr類,使用ObjectMapper.readTree()方法將這個字符串轉換為一個JsonNodе

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

最後,我們通過一系列的斷言來驗證轉換後的數據的完整性,這些斷言檢查了從JsonNodе轉換為ObjectNodе後的數據。

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.