備忘録 〜プログラミング〜

プログラミングに関する事をつらつらと、、

APIからのResponseがJson形式だった場合にMap<String, String>でパースする方法

表題の通りAPIからのResponseがJSON形式だった場合にMap形式でパースがしたくなり調べてみたのでメモしておきます。
API接続とJSONのパースで使用したライブラリは以下の通りとなります。
API接続: Volley
JSONのパース: GSON

実装はこんな感じになります。

import com.google.gson.Gson;
import com.google.gson.annotations.SerializedName;
import com.google.gson.reflect.TypeToken;

import java.io.Serializable;
import java.lang.reflect.Type;
import java.util.Map;

public class SampleEntity implements Serializable{
  private static final long serialVersionUID = 7535272758660084740L;
  public Data data;
  public class Data{
    @SerializedName("hoge")
    private String hogeJson;

    public Map<String, String> getHoge(){
      Gson gson = new Gson();
      Type type = new TypeToken<Map<String, String>>(){}.getType();
      return gson.fromJson(hogeJson, type);
    }
  }
}

簡単なサンプルになりますが、こんな感じでJSONをMapに変換する事が出来ました〜
参考URLstackoverflow.com