Java 中 Jackson 的 readTree

HoneyMoose 2022-01-07 12:43:12 阅读数:927

java jackson readtree

JSON 數據是目前比較通用的數據交換格式。

在一些新的項目中可能會使用 yaml 這種格式,但大部分項目目前都還是在使用 JSON 數據格式來進行數據交換。

可能老的項目還在使用 XML,這個不在我們這篇文章的討論範圍內。

在 JAVA 程序中,如果要對 JSON 數據進行處理,通常就會涉及到 JSON 數據的轉換和解析。

使用的包

有多種包可以來進行使用,目前使用最多的是 Jackson,同時 Gson 也在使用中,更新的頻率也比較不錯。

Json-lib 已經不更新了,可以取代的是 JSON in Java。

從 Maven 倉庫中,可以看到 Jackson Databind 是使用最多的庫。


Java 中 Jackson 的 readTree_java


解析

當我們拿到一個 JSON 字符串的時候,我們通常需要進行解析。

如果你已經針對這個給出的 JSON 字符串的話,你可以直接進行使用將這個字符串映射成對象。

這個使用使用的方法應該是 readValue。

如果使用 ​​readTree​​ 的話,主要目的是將輸入的字符串轉換為 JsonNode 對象。

然後再對轉換後的 JsonNode 對象進行操作。

考察下面的一個 JSON 文本。


Java 中 Jackson 的 readTree_數據_02


在我們使用代碼:

ObjectMapper mapper = new ObjectMapper();

JsonNode node = mapper.readTree(new URL(CONTENT_URL));
JsonNode topicsNodes = node.get("topic_list").get("topics");
  • 1.
  • 2.
  • 3.
  • 4.

將輸入的字符串轉換為 node 後,我們會看到你的 node 對象中的內容為:


Java 中 Jackson 的 readTree_數據_03

這和你輸入的 JSON 數據格式中的內容是對應的。

如果你還需要獲得某一個 node 下面的 node 話,你可以使用方法 get。

這個 get 方法將會返回一個 JsonNode 對象。


Java 中 Jackson 的 readTree_數據_04


你可以使用上面的方法不停的 get,get 再 get。


 ​https://www.ossez.com/t/java-jackson-readtree/13846​

版权声明:本文为[HoneyMoose]所创,转载请带上原文链接,感谢。 https://gsmany.com/2022/01/202201071243120808.html