インターネット技術の発展に伴い、Web アプリケーションはますます複雑になり、多くのアプリケーションでは JSON 形式でのデータ交換が必要になります。 Java 開発では、JSON データを処理する一般的な方法は、Jackson ライブラリを使用することです。この記事では、Jackson ライブラリを使用して JSON データを処理するプロセスを紹介します。
ジャクソンとは何ですか?
Jackson は、JSON 形式のデータを処理するための Java ライブラリです。これは、Java オブジェクトを JSON 形式にシリアル化し、JSON データを Java オブジェクトに逆シリアル化する簡単な方法を提供します。また、JSON データ ストリームから Java オブジェクトへのマッピング、および Java オブジェクトから JSON データ ストリームへのマッピングもサポートします。
Jackson ライブラリを使用して Java オブジェクトを JSON にシリアル化する
まず、Java オブジェクトを作成し、アノテーションを使用してフィールドの名前を定義する必要があります。たとえば、次のような名前の Java オブジェクトを作成しました。
class Person { @JsonProperty("name") private String mName; @JsonProperty("age") private int mAge; public Person(String name, int age) { mName = name; mAge = age; } // 省略 Getter 和 Setter 方法 }
上記のコードでは、@JsonProperty アノテーションを使用して「name」フィールドと「age」フィールドの JSON 名を定義しました。次に、ObjectMapper クラスを使用して、Java オブジェクトを JSON 形式にシリアル化できます。
ObjectMapper mapper = new ObjectMapper(); Person person = new Person("John Smith", 30); String jsonString = mapper.writeValueAsString(person);
上記のコードでは、ObjectMapper オブジェクトを作成し、Person オブジェクトを JSON 形式の文字列に変換します。出力は次のようになります。
{"name":"John Smith","age":30}
オンデマンドでフィールドのシリアル化をサポート
Jackson ライブラリは、@JsonView アノテーションを介してフィールドをビューにグループ化することもサポートしています。これにより、各ビューに 1 セットのフィールドのみを表示できます。以下に例を示します。
class Views { static class Public {} static class Internal extends Public {} } class Person { @JsonProperty("name") @JsonView(Views.Public.class) private String mName; @JsonProperty("age") @JsonView(Views.Internal.class) private int mAge; public Person(String name, int age) { mName = name; mAge = age; } // 省略 Getter 和 Setter 方法 }
上記のコードでは、最初に Public と Internal という 2 つのビューを定義します。人物オブジェクトの「名前」フィールドはパブリック ビューに関連付けられ、「年齢」フィールドは内部ビューに関連付けられます。次に、ObjectMapper クラスを使用して、特定のビューを含む Java オブジェクトを JSON 形式にシリアル化します。
ObjectMapper mapper = new ObjectMapper(); Person person = new Person("John Smith", 30); String jsonStringPublic = mapper.writerWithView(Views.Public.class).writeValueAsString(person); String jsonStringInternal = mapper.writerWithView(Views.Internal.class).writeValueAsString(person);
上記のコードでは、Person オブジェクトをパブリック ビューと内部ビューの文字列を含む JSON 形式にシリアル化します。出力は次のようになります。
パブリック ビュー:
{"name":"John Smith"}
内部ビュー:
{"name":"John Smith","age":30}
Jackson ライブラリを使用して JSON データを Java オブジェクトに逆シリアル化する
JSON データを Java オブジェクトに逆シリアル化するには、まず Java オブジェクトを作成し、次に ObjectMapper クラスを使用して JSON データ ストリームをオブジェクトにマップする必要があります。
ObjectMapper mapper = new ObjectMapper(); Person person = mapper.readValue(jsonString, Person.class);
上記のコードでは、 ObjectMapper オブジェクトを取得し、JSON データを Person オブジェクトに変換します。 JSON 文字列は Person オブジェクトのフィールド名と一致する必要があることに注意してください。一致しない場合は例外がスローされます。
Jackson ライブラリを使用して JSON データ ストリームを処理する
Jackson は、大きな JSON ファイルを 1 行ずつ処理するために、JSON データ ストリームを Java オブジェクトにマッピングすることもサポートしています。以下は例です:
ObjectMapper mapper = new ObjectMapper(); JsonFactory factory = mapper.getFactory(); JsonParser parser = factory.createParser(new File("testdata.json")); while (parser.nextToken() != null) { if (parser.getCurrentToken() == JsonToken.START_OBJECT) { Person person = mapper.readValue(parser, Person.class); // 处理Person对象 } }
上記のコードでは、まず ObjectMapper オブジェクトと JsonFactory オブジェクトを作成します。次に、JsonFactory オブジェクトを使用して JsonParser オブジェクトを作成します。このオブジェクトは、JSON ファイルのデータ ストリームを 1 行ずつ読み取る役割を果たします。次に、ObjectMapper.readValue() メソッドを使用して、現在の行の JSON データ ストリームを Person オブジェクトにマップします。
概要
Jackson ライブラリを使用して JSON データを処理することは、非常に便利な方法です。 Jackson は、Java オブジェクトを JSON 形式にシリアル化し、JSON データを Java オブジェクトに逆シリアル化し、JSON データ ストリームを Java オブジェクトにマッピングできるようにする多くのオプションと構成を提供します。これにより、JSON データの処理が非常に簡単になります。
以上がJackson を使用して Java API 開発で JSON データを処理するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

SublimeText3 中国語版
中国語版、とても使いやすい

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール
