JavaのJsonObjectBuilderとJsonArrayBuilderでJSONを作成する方法
JsonObjectBuilderとJsonArrayBuilderとは
Java EE(Jakarta EE)が提供するJSON Processing API(javax.json)では、JsonObjectBuilderを使ってJsonObjectモデルを、JsonArrayBuilderを使ってJsonArrayモデルをそれぞれ生成できます。
どちらのビルダーもJsonクラスのファクトリメソッドから取得します。Json.createObjectBuilder().build()を呼び出せば空のJsonObjectインスタンスが、Json.createArrayBuilder().build()を呼び出せば空のJsonArrayインスタンスがそれぞれ生成されます。
主なメソッド
- add(String name, value):オブジェクトに「名前と値」のペアを追加します。値には文字列・数値・boolean・null・JsonObject・JsonArrayなどを指定できます。
- build():それまでに追加した内容をもとに、変更不可(イミュータブル)なモデルを構築して返します。
サンプルコード
次の例では、従業員情報を表すJSONオブジェクトを作成しています。入れ子になった住所オブジェクトはcreateObjectBuilder()で、電話番号の一覧はcreateArrayBuilder()で生成し、メソッドチェーンによって一気に組み立てています。
import java.io.*;
import javax.json.*;
public class JsonObjectTest {
public static void main(String[] args) {
JsonObject empObject = Json.createObjectBuilder().add("empName", "Jai")
.add("empAge", "25")
.add("empSalary", "40000")
.add("empAddress",
Json.createObjectBuilder().add("street", "IDPL Colony")
.add("city", "Hyderabad")
.add("pinCode", "500072")
.build()
)
.add("phoneNumber",
Json.createArrayBuilder().add("9959984000")
.add("7702144400")
.build()
)
.build();
System.out.println(empObject);
}
}
実行結果
{"empName":"Jai","empAge":"25","empSalary":"40000","empAddress":{"street":"IDPL Colony","city":"Hyderabad","pinCode":"500072"},"phoneNumber":["9959984000","7702144400"]}
ポイント解説
- 各add()メソッドはビルダー自身を返すため、メソッドチェーンで読みやすく記述できます。
- build()を呼び出した時点でモデルが確定し、以降は内容を変更できません。
- 利用するには、Mavenなどの依存関係管理ツールで「javax.json-api」とその実装ライブラリ(Glassfish実装など)をクラスパスに追加してください。
-
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