ホームページ >Java >&#&チュートリアル >Java の Jackson for JSON を詳しく見る: JsonNode、ArrayNode、ObjectMapper について理解する
Java 開発者の皆さん! ?
JSON データを見つめながら、「いったいこれを Java でどのように操作すればよいのだろう?」と考えたことはありませんか?心配しないでください - あなたは一人ではありません! API を構築する場合でも、API を使用する場合でも、あるいは単にデータを処理する場合でも、JSON を扱うことはほぼ避けられません。しかし、良いニュースがあります:ジャクソンはあなたの味方です!
この記事では、JsonNode、ArrayNode、ObjectMapper などの Jackson の基本について説明します。簡単なコード例と出力を使用して、物事がどのように機能するかを正確に示して、シンプルにしていきます。
いいですね?飛び込んでみましょう! ?
例に入る前に、Spring Boot プロジェクトで Jackson をセットアップする方法を簡単に説明しましょう。良いニュース: Spring Boot には Jackson が組み込まれているため、最小限のセットアップが必要です。 ?
新しい Spring Boot プロジェクトを作成すると、Jackson がシリアル化および逆シリアル化用のデフォルトの JSON ライブラリとして提供されます。 Jackson を明示的に追加する場合は、pom.xml に次の依存関係があることを確認してください:
<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.18.0</version> <!-- You can use the latest version --> </dependency>
これにより、JSON 処理のための ObjectMapper を含む Jackson のコア機能が追加されます。
ボーナス: Spring Boot 構成
Spring Boot は、Jackson のすぐに使用できるセットアップを提供しますが、application.properties または application.yml ファイルを使用してカスタマイズすることもできます。
たとえば、JSON の整形印刷を構成するには、次を追加できます。
spring.jackson.serialization.indent_output=true
または application.yml:
spring: jackson: serialization: indent_output: true
これで、Spring Boot アプリが JSON をシリアル化するたびに、適切にフォーマットされるようになります。
このセットアップが完了すると、Jackson を使用して Spring Boot アプリで JSON を操作する準備が整います。
Jackson は、Java で JSON を操作するためのスイスアーミーナイフのようなものです。次の目的で使用できます:
今日はこれらの機能のいくつかを検討するので、JSON 処理の恐怖を軽減する準備をしてください!
JsonNode は、JSON データを探索して操作できる魔法のキーと考えてください。これは、Java で JSON 構造のさまざまな部分を表す方法です。
次の単純な JSON データがあると想像してください:
{ "name": "Samarth", "age": 30, "city": "New York" }
これを Java でどう読むのですか?見てみましょう!
コードは次のとおりです:
import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; public class JsonNodeExample { public static void main(String[] args) throws Exception { String jsonString = "{\"name\":\"Samarth\", \"age\":30, \"city\":\"New York\"}"; // Step 1: Create an ObjectMapper ObjectMapper objectMapper = new ObjectMapper(); // Step 2: Parse the JSON string into a JsonNode JsonNode jsonNode = objectMapper.readTree(jsonString); // Step 3: Access values from the JsonNode System.out.println("Name: " + jsonNode.get("name").asText()); System.out.println("Age: " + jsonNode.get("age").asInt()); System.out.println("City: " + jsonNode.get("city").asText()); } }
そして出力:
<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.18.0</version> <!-- You can use the latest version --> </dependency>
かなりクールですね?これで、Java で JSON を操作することがいかに簡単であるかがわかり始めました!
しかし、JSON が配列の場合はどうなるでしょうか?心配しないでください、ジャクソンはそれもカバーしています!次の JSON 配列があるとします:
spring.jackson.serialization.indent_output=true
ArrayNode を使用して、このオブジェクトの配列を読み取り、操作できます。
コードは次のとおりです:
spring: jackson: serialization: indent_output: true
そして出力:
{ "name": "Samarth", "age": 30, "city": "New York" }
簡単ですね? ArrayNode を使用すると、Jackson は JSON 配列の処理を簡単にします!
さて、ジャクソンの心と魂である ObjectMapper について話しましょう。これは、Java オブジェクトを JSON に、またはその逆に変換するための頼りになるツールです。
Java オブジェクトを JSON にシリアル化する
シリアル化は、「Java オブジェクトを JSON 文字列に変換する」という派手な方法にすぎません。単純な Personclass があるとします。
コード:
import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; public class JsonNodeExample { public static void main(String[] args) throws Exception { String jsonString = "{\"name\":\"Samarth\", \"age\":30, \"city\":\"New York\"}"; // Step 1: Create an ObjectMapper ObjectMapper objectMapper = new ObjectMapper(); // Step 2: Parse the JSON string into a JsonNode JsonNode jsonNode = objectMapper.readTree(jsonString); // Step 3: Access values from the JsonNode System.out.println("Name: " + jsonNode.get("name").asText()); System.out.println("Age: " + jsonNode.get("age").asInt()); System.out.println("City: " + jsonNode.get("city").asText()); } }
出力:
Name: Samarth Age: 30 City: New York
その逆も同様です! JSON を取得して Java オブジェクトに戻すことができます。これは逆シリアル化と呼ばれます。
[ {"name": "Samarth"}, {"name": "Ujjwal"}, {"name": "Gaurav"} ]
そして出力:
import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.node.ArrayNode; public class ArrayNodeExample { public static void main(String[] args) throws Exception { String jsonArrayString = "[{\"name\":\"Samarth\"}, {\"name\":\"Ujjwal\"}, {\"name\":\"Gaurav\"}]"; // Step 1: Create an ObjectMapper ObjectMapper objectMapper = new ObjectMapper(); // Step 2: Parse the JSON array into an ArrayNode ArrayNode arrayNode = (ArrayNode) objectMapper.readTree(jsonArrayString); // Step 3: Loop through each element in the array for (JsonNode jsonNode : arrayNode) { System.out.println("Name: " + jsonNode.get("name").asText()); } } }
**ObjectMapper ** を再度使用しますが、今回は JSON 文字列を読み取り、それを Person オブジェクトに変換し直します。
これは readValue() を使用して行われ、その結果、コードですぐに使用できる完全な Java オブジェクトが生成されます。
そして、これで完成です!私たちは多くのことをカバーしてきました:
このガイドによって、Jackson の怖れが少しなくなり、もっと楽しく使えるようになることを願っています。コツを掴めば、すぐにプロのように JSON を扱えるようになります。
でも、ここでやめないでください!次回の記事では、より高度な Jackson 機能と実際のアプリケーションのベスト プラクティスについて詳しく説明します。
また会いましょう!コーディングを楽しんでください! ?
以上がJava の Jackson for JSON を詳しく見る: JsonNode、ArrayNode、ObjectMapper について理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。