JavaでMapをJSONオブジェクトに変換する方法を解説
JSON(JavaScript Object Notation)は、軽量でテキストベース、かつ言語に依存しないデータ交換フォーマットです。JSONはオブジェクトと配列という2種類の構造化データを表現できます。オブジェクトはキー/バリュー(key/value)ペアの順序を持たないコレクションであり、配列は値の順序付きシーケンスです。
Javaでは、org.json.simple.JSONValue クラスが提供する静的メソッド toJSONString() を使うことで、MapをJSONオブジェクトへ簡単に変換できます。このクラスには、以下の2つの重要な静的メソッドが用意されています。
- writeJSONString():オブジェクトをJSONテキストにエンコードし、出力ストリームに書き込むメソッド
- escape():特殊文字や引用符(
"、\\、/、\r、\n、\b、\f、\tなど)をエスケープするメソッド
サンプルコード
以下の例では、HashMapに格納したデータを toJSONString() メソッドを使ってJSON形式の文字列に変換しています。
import java.util.*;
import org.json.simple.JSONValue;
public class ConvertMapJSONTest {
public static void main(String[] args) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("1", "India");
map.put("2", "Australia");
map.put("3", "England");
map.put("4", "South Africa");
String jsonStr = JSONValue.toJSONString(map); // MapをJSONに変換
System.out.println(jsonStr);
}
}
実行結果
{"1":"India","2":"Australia","3":"England","4":"South Africa"}
このように、json-simpleライブラリの JSONValue.toJSONString() メソッドを使用すれば、わずか1行のコードでMapオブジェクトをJSON文字列に変換できます。なお、このライブラリを使用するには、Mavenなどの依存関係管理ツールで com.googlecode.json-simple:json-simple をプロジェクトに追加しておく必要があります。
-
JavaオブジェクトをJSONに変換する方法(Jackson・Gsonの使い方)
このチュートリアルでは、JavaオブジェクトをJSON形式に変換する方法を、定番ライブラリであるJacksonとGsonの2つを使って解説します。 サンプルとして使用するのは、ごく標準的なPOJO(Plain Old Java Object)であるPersonクラスです。Personオブジェクトを作成したら、それぞれのライブラリを使ってJSONへ変換してみましょう。 Person.java import java.util.List; import java.util.Map; public class Person { String name; Integer age;
-
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ライブラリを使用するには