Jackson-streaming-api
ジャクソン-ストリーミングAPI
ストリーミングAPIは、JSONコンテンツを個別のイベントとして読み書きします。 JsonParserはデータを読み取りますが、JsonGeneratorはデータを書き込みます。 これは3つの中で最も強力なアプローチであり、読み取り/書き込み操作のオーバーヘッドが最も低く、高速です。 XMLのStaxパーサーに類似しています。
この記事では、JacksonストリーミングAPIを使用してJSONデータを読み書きする方法を紹介します。 ストリーミングAPIはトークンの概念で動作し、Jsonの詳細はすべて慎重に処理する必要があります。 以下は、例で使用する2つのクラスです。
- link:/jackson/jackson_jsongenerator [JsonGenerator] -JSON文字列に書き込みます。
- link:/jackson/jackson_jsonparser [JsonParser] -JSON文字列を解析します。
JsonGeneratorを使用してJSONを記述する
JsonGeneratorの使用は非常に簡単です。 最初に、JsonFactory.createJsonGenerator()メソッドを使用してJsonGeneratorを作成し、write *()メソッドを使用して各json値を書き込みます。
JsonGeneratorの動作を見てみましょう。 C:\> Jackson_WORKSPACE にJacksonTesterという名前のJavaクラスファイルを作成します。
ファイル:JacksonTester.java
結果を確認する
次のように javac コンパイラを使用してクラスをコンパイルします。
次に、jacksonTesterを実行して結果を確認します。
出力を確認する
JsonParserを使用したJSONの読み取り
JsonParserの使用方法も簡単です。 最初にJsonFactory.createJsonParser()メソッドを使用してJsonParserを作成し、そのnextToken()メソッドを使用して各json文字列をトークンとして読み取ります。 各トークンを確認し、それに応じて処理します
JsonParserの動作を見てみましょう。 C:\> Jackson_WORKSPACE にJacksonTesterという名前のJavaクラスファイルを作成します。
ファイル:JacksonTester.java
結果を確認する
次のように javac コンパイラを使用してクラスをコンパイルします。
次に、jacksonTesterを実行して結果を確認します。
出力を確認する