JavaのJSON-lib APIでJSONオブジェクトに要素を追加する方法
JSON-libは、JavaBeans、Map、配列、コレクションなどのJavaオブジェクトをJSON形式でシリアライズ・デシリアライズするためのJavaライブラリです。JSONオブジェクトへ要素を追加するには、JSONObjectクラスが提供するelement()メソッドを使用します。
このライブラリを利用するには、事前にjson-lib.jar、ezmorph.jar、commons-lang.jar、commons-collections.jar、commons-beanutils.jar、commons-logging.jarといった依存JARファイルをダウンロードしておく必要があります。これらはMaven Centralからも取得できるため、ビルドツール経由での導入も可能です。プログラム内ではnet.sf.jsonパッケージをインポートして使用します。
element()メソッドの構文
public JSONObject element(String key, Object value)
第1引数にキー(文字列)、第2引数に値(任意のオブジェクト)を渡すことで、JSONObjectにキーと値のペアを登録します。戻り値としてJSONObject自身が返されるため、メソッドチェーンによる連続的な要素追加が可能です。
サンプルコード
import java.util.Arrays;
import net.sf.json.JSONObject;
public class JsonAddElementTest {
public static void main(String[] args) {
JSONObject jsonObj = new JSONObject()
.element("name", "Raja Ramesh")
.element("age", 30)
.element("address", "Hyderabad")
.element("contact numbers", Arrays.asList("9959984000", "7702144400", "7013536200"));
System.out.println(jsonObj.toString(3)); // インデント付きで整形出力
}
}
この例では、element()メソッドをチェーンのように連結して呼び出し、名前・年齢・住所・電話番号のリストを1つのJSONオブジェクトにまとめています。toString(3)のようにインデント幅を指定すると、読みやすい形式でJSONを出力できます。また、Arrays.asList()で生成したリストのような複雑なデータ構造も、そのまま値として設定できる点が便利です。
実行結果
{
"name": "Raja Ramesh",
"age": 30,
"address": "Hyderabad",
"contact numbers": [
"9959984000",
"7702144400",
"7013536200"
]
}
まとめ
JSON-libのelement()メソッドを使えば、キーと値のペアを簡単にJSONオブジェクトへ追加でき、メソッドチェーンによって可読性の高いコードを書けます。文字列や数値だけでなく、リストや配列などのデータ構造も柔軟に扱えるため、Javaアプリケーションでの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