首頁 > Java > java教程 > 主體

深入了解 Java 中的 Jackson for JSON:了解 JsonNode、ArrayNode 和 ObjectMapper

Linda Hamilton
發布: 2024-10-22 22:25:03
原創
746 人瀏覽過

Dive into Jackson for JSON in Java: Understanding JsonNode, ArrayNode, and ObjectMapper

嘿,Java 開發者們! ?

曾經發現自己盯著 JSON 資料並思考,「我到底如何在 Java 中使用它?」別擔心 - 你並不孤單!無論是建立 API、使用 API 還是只是處理數據,處理 JSON 幾乎是不可避免的。但好消息是:傑克森支持你!

在本文中,我將向您介紹一些 Jackson 基礎知識,例如 JsonNode、ArrayNode 和 ObjectMapper。我們將保持簡單,透過簡單的程式碼範例和輸出向您展示事情是如何運作的。

聽起來不錯嗎?讓我們深入了解吧! ?

在 Spring Boot 專案中設定 Jackson

在深入研究範例之前,讓我們先快速介紹一下如何在 Spring Boot 專案中設定 Jackson。好消息:Spring Boot 內建了 Jackson,因此只需最少的設定。 ?

當您建立新的 Spring Boot 專案時,Jackson 將作為用於序列化和反序列化的預設 JSON 函式庫。如果您想要明確新增 Jackson,請確保您的 pom.xml 中包含以下依賴項:

這將會加入 Jackson 的核心功能,包括用於 JSON 處理的 ObjectMapper。

獎勵:Spring Boot 配置
Spring Boot 為 Jackson 提供了開箱即用的設置,但您也可以透過 application.properties 或 application.yml 檔案進行自訂。

例如,要設定 JSON 的漂亮列印,您可以新增:

或在application.yml中:

現在,每當您的 Spring Boot 應用程式序列化 JSON 時,它都會被很好地格式化!

完成此設定後,您就可以使用 Jackson 在 Spring Boot 應用程式中使用 JSON。

那麼,傑克森是什麼?

Jackson 就像一把在 Java 中處理 JSON 的瑞士軍刀。您可以用它來:

  • 1.將 Java 物件轉換為 JSON(序列化)。
  • 2.將 JSON 轉換為 Java 物件(反序列化)。
  • 3.使用 JsonNode 以樹狀結構處理 JSON。

今天我們將探索其中一些功能,所以準備好讓 JSON 處理感覺不那麼可怕!

JsonNode:您踏入 JSON 的第一步

將 JsonNode 視為一把神奇的鑰匙,可讓您探索和操作 JSON 資料。它是一種用 Java 表示 JSON 結構不同部分的方法。

想像一下您有這個簡單的 JSON 資料:

如何用 Java 閱讀此內容?讓我們看看吧!

程式碼如下:

輸出:

這裡發生了什麼事?

  1. ObjectMapper 是 Jackson 的主要幫手。它是 JSON 和 Java 之間的轉換。
  2. readTree() 讀取 JSON 並將其轉換為 JsonNode 物件。
  3. 我們使用 .get() 來存取 JSON 中的各個欄位 -「name」、「age」和「city」。

很酷,對吧?現在您開始看到在 Java 中使用 JSON 是多麼容易!

ArrayNode:處理 JSON 數組

但是如果你的 JSON 是一個陣列怎麼辦?別擔心,傑克森也能解決這個問題!假設您有這個 JSON 陣列:

我們可以使用 ArrayNode 來讀取和處理這個物件陣列。

程式碼如下:

輸出:

這裡發生了什麼事?

  1. **ArrayNode **是一種特殊類型的 **JsonNode **,表示 JSON 物件陣列。
  2. 我們循環遍歷數組中的每個元素並列印出每個人的「名字」。

簡單吧?透過 ArrayNode,Jackson 讓處理 JSON 陣列變得輕而易舉!

ObjectMapper:傑克森的核心

現在,我們來談談ObjectMapper - Jackson 的核心和靈魂。它是將 Java 物件轉換為 JSON 的首選工具,反之亦然。

將 Java 物件序列化為 JSON
序列化只是一種奇特的說法,「將我的 Java 物件轉換為 JSON 字串」。假設您有一個簡單的 Person 類別:

代碼:

輸出:

這裡發生了什麼事?

  1. **ObjectMapper **取得 Person 物件並使用 writeValueAsString() 將其轉換為 JSON 字串。
  2. writeValueAsString() 方法建立 Java 物件的 JSON 表示形式。
  3. 結果是一個有效的 JSON 字串,您可以傳送到 API 或儲存在資料庫中。

將 JSON 反序列化為 Java 對象

反之亦然!您可以取得 JSON 並將其轉換回 Java 物件。這稱為反序列化

程式碼如下:

輸出:

這裡發生了什麼事?

我們再次使用 **ObjectMapper **,但這次它讀取 JSON 字串並將其轉換回 Person 物件。
這是使用 readValue() 完成的,結果是一個完整的 Java 對象,可以在您的程式碼中使用。

總結

就是這樣!我們已經涵蓋了很多內容:

  • JsonNode:如何讀取和操作 JSON 資料。
  • ArrayNode:如何處理 JSON 陣列。
  • ObjectMapper:如何在 Java 物件與 JSON 之間進行序列化與反序列化。

我希望這份指南能讓 Jackson 不再那麼令人生畏,並且使用起來更加有趣!一旦掌握了竅門,您很快就能像專業人士一樣處理 JSON。

但是嘿,不要停在這裡!請留意我的下一篇文章,我們將深入探討更高級的 Jackson 功能和實際應用程式的最佳實踐。

下次見!快樂編碼! ?

以上是深入了解 Java 中的 Jackson for JSON:了解 JsonNode、ArrayNode 和 ObjectMapper的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!