JavaでJSON文字列をJSONオブジェクトに変換する方法を徹底解説
JSONとは
JSON(JavaScript Object Notation)は、データの転送や保存に広く利用されている軽量なデータ交換フォーマットです。人間にとって読み書きしやすく、機械にとっても解析が容易なため、Web APIや設定ファイルなど、さまざまな場面で採用されています。
JSONObjectとJSONArrayの役割
JSONObjectクラスは、文字列からテキストを解析して、Mapのようなオブジェクトを生成します。このオブジェクトには、内容を操作するためのメソッドや、JSON仕様に準拠したオブジェクトのシリアライズを生成するメソッドが用意されています。
一方、JSONArrayクラスは、文字列からテキストを解析して、リスト(ベクター)のようなオブジェクトを生成します。こちらも内容の操作や、JSON準拠の配列シリアライズ生成のためのメソッドを提供しています。
以下の2つの例では、JSON文字列をJSONオブジェクトへ変換する方法を紹介します。
必要なライブラリ
org.jsonパッケージは標準JDKには含まれていないため、Mavenを使用している場合は、pom.xmlに以下の依存関係を追加してください。
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20240303</version>
</dependency>
例1:JSONArrayを使ってJSON文字列を変換する
配列形式のJSON文字列をJSONArrayとして読み込み、各要素をJSONObjectとして取り出す例です。
import org.json.JSONObject;
import org.json.JSONArray;
public class StringToJSONTest {
public static void main(String args[]) {
String str = "[{\"No\":\"1\",\"Name\":\"Adithya\"},{\"No\":\"2\",\"Name\":\"Jai\"}, {\"No\":\"3\",\"Name\":\"Raja\"}]";
JSONArray array = new JSONArray(str);
for(int i=0; i < array.length(); i++) {
JSONObject object = array.getJSONObject(i);
System.out.println(object.getString("No"));
System.out.println(object.getString("Name"));
}
}
}
実行結果
1
Adithya
2
Jai
3
Raja
このように、new JSONArray(str)で文字列を解析し、ループ処理の中でgetJSONObject(i)を使って各要素を取り出せます。値の取得にはgetString()などの型に応じたメソッドを使用します。
例2:JSONObjectを使ってJSON文字列を変換する
単一オブジェクト形式のJSON文字列をJSONObjectとして読み込む例です。
import org.json.*;
public class StringToJsonObjectTest {
public static void main(String[] args) {
String str = "{\"name\": \"Raja\", \"technology\": \"Java\"}";
JSONObject json = new JSONObject(str);
System.out.println(json.toString());
String tech = json.getString("technology");
System.out.println(tech);
}
}
実行結果
{"name":"Raja","technology":"Java"}
Javanew JSONObject(str)に文字列を渡すだけで、簡単にJSONオブジェクトへ変換できます。また、toString()で再びJSON形式の文字列として出力したり、getString("キー名")で特定の値を取得したりすることも可能です。
まとめ
JavaでJSON文字列を扱う際は、org.jsonライブラリのJSONObjectとJSONArrayを使うのが基本です。オブジェクト形式ならJSONObject、配列形式ならJSONArrayを選択し、コンストラクタに文字列を渡すだけで変換できます。APIレスポンスの解析など、日常的な開発で頻繁に使うテクニックなので、ぜひマスターしておきましょう。
-
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ライブラリを使用するには