Jackson
Jacksonについてはこちら。
JacksonはJavaのライブラリで、JavaオブジェクトをJSON形式にしたり、その逆のこともできます。もちろんJSONファイルへの読み書きも可能です。
JSONをMapオブジェクトに変換する
Jacksonでは、JSON文字列をJavaオブジェクトに変換することができますが、 変換の方法の一つに、JSONのプロパティと同じ名称のプロパティを持つJavaクラスを用意するやり方があります。
public class JSONResponse { private String name; private String age; }
// JSON文字列であるjsonをJSONResponse型オブジェクトに変換 JSONResponse response = mapper.readValue(json, JSONResponse.class);
JSONのプロパティがいつも同じであれば問題はないのですが、
例えば異なるAPIのレスポンスを処理する場合などに、レスポンスごとの個別のコンテナクラスを作成する必要があります。
そんなときは、JSONをMapオブジェクトに変換してしまいましょう。
JacksonのTypeReference
オブジェクトを利用することでJSONからMap型オブジェクトを生成することができます。
TypeReference<HashMap<String, String>> reference = new TypeReference<HashMap<String, String>>() {};
Map<String, String> map = mapper.readValue(json, reference);