JavaのJSON-lib APIを使ってコレクションをJSON配列に変換する方法
net.sf.json.JSONArrayは、値の順序付きシーケンス(ordered sequence)を表すクラスです。外部形式としては、角括弧 [ ] で囲まれ、各値がカンマで区切られた文字列として表現されます。一方、内部形式では get() メソッドや opt() メソッドを使ってインデックスを指定して値にアクセスでき、element() メソッドによって値の追加や置換を行うことができます。
JSONArrayに格納できる値の型は、Boolean、JSONArray、JSONObject、Number、String、および JSONNull オブジェクトなど多岐にわたります。
JSON-libライブラリでは、JSONSerializer.toJSON() メソッドを使用することで、Listなどのコレクションを簡単にJSONArrayへ変換できます。以下に具体的なサンプルコードを示します。
サンプルコード
import java.util.*;
import net.sf.json.JSONArray;
import net.sf.json.JSONSerializer;
public class ConvertCollectionToJsonArrayTest {
public static void main(String[] args) {
// 文字列のListをJSONArrayに変換
List<String> strList = Arrays.asList("India", "Australia", "England", "South Africa");
JSONArray jsonArray = (JSONArray) JSONSerializer.toJSON(strList);
System.out.println(jsonArray.toString(3)); // インデント3で整形出力
// 様々な型を含むListをJSONArrayに変換
List<Object> dataList = new ArrayList<Object>();
dataList.add("List Data");
dataList.add(50);
dataList.add(99);
dataList.add(50.65);
dataList.add(true);
dataList.add(Arrays.asList("X", "Y", "Z")); // ネストしたListも可能
JSONArray jsonArray2 = (JSONArray) JSONSerializer.toJSON(dataList);
System.out.println(jsonArray2.toString(3));
}
}
実行結果
[
"India",
"Australia",
"England",
"South Africa"
]
[
"List Data",
50,
99,
50.65,
true,
[
"X",
"Y",
"Z"
]
]
ポイントまとめ
JSONSerializer.toJSON()にListを渡すと、戻り値はObject型なので(JSONArray)へキャストして受け取ります。toString(int indentFactor)を使うと、指定したインデント幅で整形された(pretty printされた)JSON文字列を取得できます。- Listの中に別のListや数値・真偽値などを混在させても、それぞれ適切なJSONの型へ自動的に変換されます。
MavenでJSON-libを利用する場合の依存関係
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>2.4</version>
<classifier>jdk15</classifier>
</dependency>
このように、JSON-libの JSONSerializer クラスを活用すれば、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の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ライブラリを使用するには