如何使用gson解析hetorogeneous映射

时间:2015-06-19 18:05:17

标签: android gson retrofit

我想用gson解析一个样本json,如下所示:

"category": {
    "sub_category_1": [...],
    "sub_category_2": [...],
    "sub_category_3": {...}
}

因为所有子类别都是动态的,我只对作为地图的子类别感兴趣。所以我在POJO中使用Map<String, Map<String, String>>作为数据类型。但是,我得到错误说数组是预期的。我的猜测是,当子类别是数组时,它也使用该数据类型进行解析。有什么建议吗?我是Retrofit和Gson的新手,所以如果你可以在这里粘贴你的反序列化代码那就太棒了。

1 个答案:

答案 0 :(得分:0)

您必须为TypeAdapter使用自定义Gson。这是一项艰苦而凌乱的工作,但这是我发现解析可行的唯一方法。看看这些:

http://www.javacreed.com/gson-typeadapter-example/

http://www.studytrails.com/java/json/java-google-json-type-adapter.jsp

https://google-gson.googlecode.com/svn/trunk/gson/docs/javadocs/com/google/gson/TypeAdapter.html