Java でハッシュマップを JSON オブジェクトに変換する方法
-
ハッシュマップを JSON オブジェクトに変換する
new JSONObject(hashmap)
- ハッシュマップを JSON オブジェクトに変換する Jackson ライブラリ
- ハッシュマップを JSON オブジェクトに変換する GSON ライブラリ
この記事では、Java でハッシュマップを JSON オブジェクトに変換する方法を紹介します。ハッシュマップを作成し、それを JSON オブジェクトに変換する例を詳しく見ていきます。
ハッシュマップと JSON はどちらも開発者にとって非常に一般的なもので、データを簡単に転送したり保存したりすることができるシンプルな構造を作るのに役立ちます。
ハッシュマップを JSON オブジェクトに変換する new JSONObject(hashmap)
ハッシュマップを JSON オブジェクトに変換する最も伝統的な方法は、JSONObject()
を呼び出してハッシュマップを渡すことです。
ハッシュマップを作成し、それを JSON 形式で出力する例を見てみましょう。
import java.util.HashMap;
import java.util.Map;
import org.json.simple.JSONObject;
public class Main {
public static void main(String[] args) {
Map<String, Object> map = new HashMap();
map.put("key1", "value1");
map.put("key2", "value2");
JSONObject json = new JSONObject(map);
System.out.printf("JSON: %s", json);
}
出力:
JSON: {"key1":"value1","key2":"value2"}
ここで注意すべきことの一つは、Map<String, Object>
は key
である文字列と value
であるオブジェクトを受け取るということです。つまり、有効な Object を値としてマップに渡し、それを JSON オブジェクトとして変換することができます。
以下は文字列と Arraylist
を値として受け取る例です。
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import org.json.simple.JSONObject;
public class Main {
public static void main(String[] args) {
ArrayList<String> stringArrayList = new ArrayList<>();
stringArrayList.add("firstString");
stringArrayList.add("secondString");
stringArrayList.add("thirdString");
Map<String, Object> map = new HashMap();
map.put("key1", "value1");
map.put("key2", "value2");
map.put("stringList", stringArrayList);
JSONObject json = new JSONObject(map);
System.out.printf("JSON: %s", json);
}
出力:
JSON: {"key1":"value1","key2":"value2","stringList":["firstString","secondString","thirdString"]}
ハッシュマップを JSON オブジェクトに変換する Jackson ライブラリ
Java には、ハッシュマップを柔軟に JSON オブジェクトに変換するのに役立つライブラリがあります。
Jackson はそのようなライブラリの一つで、Java map
を受け取り、そのマップを JSON 形式に変換します。
ObjectMapper().writeValueAsString(map)
は互換性のないデータ形式を検出すると例外をスローする可能性があるため、JsonProcessingException
を処理することを忘れないでください。
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.HashMap;
import java.util.Map;
public class Main {
public static void main(String[] args) throws JsonProcessingException {
Map<String, Object> map = new HashMap();
map.put("key1", "value1");
map.put("key2", "value2");
String json = new ObjectMapper().writeValueAsString(map);
System.out.printf("JSON: %s", json);
}
出力:
JSON: {"key1":"value1","key2":"value2"}
ハッシュマップを JSON オブジェクトに変換する GSON ライブラリ
Gson
ライブラリはハッシュマップを JSON オブジェクトに変換するために最もよく使われているライブラリの一つです。Gson ライブラリはハッシュマップと JSON を扱うための簡単なメソッドを提供しています。
Gson
クラスには toJsonTree
というメソッドがあり、これはハッシュマップを JSON ツリーに変換します。しかし、JSON オブジェクトが必要なので、toJSONObject()
を使って JSON ツリーを JSON オブジェクトにすることができます。
import com.google.gson.Gson;
import com.google.gson.JsonObject;
import java.util.HashMap;
import java.util.Map;
public class Main {
public static void main(String[] args) {
Map<String, Object> map = new HashMap();
map.put("key1", "value1");
map.put("key2", "value2");
Gson gson = new Gson();
JsonObject json = gson.toJsonTree(map).getAsJsonObject();
System.out.printf("JSON: %s", json);
}
出力:
JSON: {"key1":"value1","key2":"value2"}
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn関連記事 - Java JSON
- Java で JSON データを文字列に変換する
- Java で JSON をデシリアライズする
- Java でオブジェクトを JSON にシリアライズする
- Java での JSON データのプリティプリント
- Java での JSON 配列の処理
- Java で XML を JSON に変換する