JavaでJacksonのTree Modelを使用してJSONを作成する方法
Jacksonライブラリでは、Tree Model(ツリーモデル)を使ってJSON構造を表現し、JsonNodeを通じてCRUD操作(作成・読み取り・更新・削除)を行うことができます。このJackson Tree Modelは、JSONの構造がJavaクラスにマッピングできない場合に特に便利です。JSON構造が事前に分からない場合や、動的にJSONを組み立てたい場合にも柔軟に対応できます。
JacksonライブラリでJSONを作成するには、JsonNodeFactoryを使用します。JsonNodeFactoryは、ノードインスタンスへのアクセス手段と各メソッドの基本的な実装を提供するクラスです。さらに、ObjectNodeクラスが持つset()メソッドとput()メソッドを使うことで、データを簡単に格納できます。
JsonNodeFactoryの構文
public class JsonNodeFactory extends Object implements Serializable
- put()メソッド:文字列や数値などの単純な値をObjectNodeに追加します。
- set()メソッド:ArrayNodeなど、別のJsonNodeオブジェクトをフィールドとして追加します。
コード例
以下は、JsonNodeFactoryとObjectNodeを使って従業員情報のJSONを生成するサンプルプログラムです。
import java.io.*;
import com.fasterxml.jackson.databind.*;
import com.fasterxml.jackson.databind.node.*;
public class JacksonTreeModelTest {
public static void main(String args[]) throws IOException {
JsonNodeFactory factory = new JsonNodeFactory(false);
ObjectMapper mapper = new ObjectMapper();
ObjectNode employee = factory.objectNode();
employee.put("empId", 125);
employee.put("firstName", "Raja");
employee.put("lastName", "Ramesh");
ArrayNode technologies = factory.arrayNode();
technologies.add("Python").add("Java").add("SAP");
employee.set("technologies", technologies);
System.out.println(mapper.writerWithDefaultPrettyPrinter().writeValueAsString(employee));
}
}実行結果
{
"empId" : 125,
"firstName" : "Raja",
"lastName" : "Ramesh",
"technologies" : [ "Python", "Java", "SAP" ]
}コードの解説
new JsonNodeFactory(false)でファクトリインスタンスを生成します。引数のfalseは、BigDecimalやBigIntegerをそのまま保持することを意味します。factory.objectNode()で空のObjectNode(JSONオブジェクト相当)を作成し、put()メソッドでempId、firstName、lastNameの各フィールドを追加しています。factory.arrayNode()で配列ノードを作成し、メソッドチェーンで複数の技術要素を追加した後、set()メソッドでemployeeノードに組み込んでいます。- 最後に、
ObjectMapperのwriterWithDefaultPrettyPrinter()を使って、整形されたJSON文字列として出力しています。
このように、JacksonのTree Modelを活用すれば、POJOクラスを定義することなく、プログラム上で柔軟にJSONデータを構築・操作できます。
-
JavaでJSON配列を作成する方法をわかりやすく解説
JSON配列とは、角括弧で囲まれた値の順序付きコレクションのことです。具体的には「[」で始まり「]」で終わり、配列内の各値はカンマ(,)で区切られます。JSON配列のサンプル{ books: [Java, JavaFX, Hbase, Cassandra, WebGL, JOGL] }json-simpleは、JSONオブジェクトを処理するための軽量ライブラリです。このライブラリを使えば、JavaプログラムからJSONドキュメントの内容を読み取ったり、書き込んだりすることができます。json-simpleのMaven依存関係json-simpleライブラリを使用するには、まずpom.x
-
JavaでJSONファイルを作成する方法をわかりやすく解説
JSON(JavaScript Object Notation)は、人間が読みやすい形式でデータを交換するために設計された、軽量なテキストベースのオープン標準フォーマットです。JSONの記法は、C、C++、Java、Python、Perlなど、多くのプログラミング言語に精通したプログラマーにとって馴染み深いものとなっています。 JSONドキュメントのサンプル 以下は、書籍情報を格納した典型的なJSONドキュメントの例です。 { book: [ { id: 01, language: Java, ed