Gson用Map反对反序列化Object

时间:2014-12-11 12:36:01

标签: java android json gson deserialization

我有一个简单的JSON:

  

{"定位":[{" app.home":"首页"" app.menu":"菜单"}]}

我创建了它的Java表示:

public class Config {
    @Key("localization")
    private Map<String, String> mLocalization = new HashMap<String, String>();
    public Map<String, String> getLocalization() {
        return mLocalization;
    }

    public void setLocalization(Map<String, String> mLocalization) {
        this.mLocalization = mLocalization;
    }
}

@Key是因为我在Robospice中使用它。 当我试图解析它时,我收到一个例外:

  

12-11 15:27:24.104:W / System.err(8133):引起:java.lang.IllegalArgumentException:键本地化,字段私有java.util.Map com.example.gson.Config.mLocalization   12-11 15:27:24.104:W / System.err(8133):引起:java.lang.IllegalArgumentException:期望的集合或数组类型但是得到了java.util.Map

那我怎么解析呢?我不想将其解析为数组,然后自己填写Map

1 个答案:

答案 0 :(得分:0)

那是因为你的JSON而不是map中有一系列地图,应该是:

{"localization": {"app.home":"Home","app.menu":"Menu"}}

或者您可以将您的密钥声明为地图数组:

private Map<String, String>[] mLocalization;