JavaでJSON-lib APIを使用して配列をJSONArrayに変換する方法
Javaの配列(Array)は、同じ型の複数の変数を格納するためのオブジェクトであり、プリミティブ型やオブジェクト参照を保持することができます。一方、JSONArrayは順序付けられた値のシーケンスです。その外部テキスト形式は、角括弧「[ ]」で囲まれ、値がカンマで区切られた文字列として表現されます。内部形式としては、インデックスを指定して値にアクセスするための get() メソッドおよび opt() メソッド、そして値を追加・置換するための element() メソッドを持つオブジェクトとして実装されています。
配列をJSONArrayに変換するには、まず Object[] 配列を作成し、それを引数として JSONSerializer クラスの toJSON() メソッドに渡します。その戻り値をJSONArrayにキャストすることで、JSON配列を取得できます。
サンプルコード
以下の例では、Object[] 配列を JSONArray に変換しています。
import net.sf.json.JSONArray;
import net.sf.json.JSONSerializer;
public class ConvertArrayToJSONArrayTest {
public static void main(String[] args) {
Object[] objArray = new Object[] {
"Array to JSON Array",
new Integer(10),
new Long(30),
new Double(14.26),
true,
new char[] {'X', 'Y', 'Z'}
};
JSONArray jsonArray = (JSONArray) JSONSerializer.toJSON(objArray);
System.out.println(jsonArray.toString(3)); // 整形してJSONを出力
}
}
実行結果
[
"Array to JSON Array",
10,
30,
14.26,
true,
[
"X",
"Y",
"Z"
]
]
ポイント解説
- JSONSerializer.toJSON():任意のJavaオブジェクトや配列を受け取り、JSON形式へ変換する静的メソッドです。
- toString(3):引数にインデント幅を指定すると、見やすい整形済み(pretty print)のJSON文字列が出力されます。
- char型の配列は、自動的に文字列の配列としてJSON配列内に展開されます。
- このAPIを使用するには、クラスパスに json-lib のJARファイルが必要です。json-libは内部で commons-lang、commons-beanutils、commons-collections、ezmorph などのライブラリに依存しているため、併せて追加してください。
-
JavaでJSON配列を作成する方法をわかりやすく解説
JSON配列とは、角括弧で囲まれた値の順序付きコレクションのことです。具体的には「[」で始まり「]」で終わり、配列内の各値はカンマ(,)で区切られます。JSON配列のサンプル{ books: [Java, JavaFX, Hbase, Cassandra, WebGL, JOGL] }json-simpleは、JSONオブジェクトを処理するための軽量ライブラリです。このライブラリを使えば、JavaプログラムからJSONドキュメントの内容を読み取ったり、書き込んだりすることができます。json-simpleのMaven依存関係json-simpleライブラリを使用するには、まずpom.x
-
JavaのMapをJSONに変換する3つの方法(Jackson・Gson・org.json)
JavaのMap(マップ)をJSONに変換する方法はいくつかあります。Javaでは、配列やMapとJSONの相互変換を行う場面が非常に多く、Web APIとのデータ連携などでも欠かせない処理です。 この記事では、代表的なライブラリであるJackson、Gson、org.jsonを使用して、JavaのMapをJSONに変換する3つの具体例をサンプルコード付きで解説します。 Jacksonを使ってJavaのMapをJSONに変換する 最初の例では、Jackson Core と Jackson Databind を使ってJavaのMapをJSONに変換します。 Jacksonライブラリを使用するには