【发布时间】:2015-11-04 02:56:44
【问题描述】:
我的模型如下所示:
public class DefaultModel<T> {
public int Status;
public T JSON;
public String ErrorMessage;
public String InfoMessage;
}
json字体样式
{"ErrorMessage":"null","InfoMessage":"null","JSON":
[{"DictId":"1","ItemCode":"1","ItemName":"sINGLE","SortNum":0,"
isChecked":true},{"ItemName":"WenJackp","SortNum":0,"isChecked":false}]
,"Status":100}
我想解析这个json,但是gson抛出异常
com.google.gson.internal.LinkedTreeMap 无法转换为 xxxxx.DictItem
如何解析?
添加更多细节,我用这个方法解析json数据:
-
创建 ParameterizedType 你会看到 buildType 方法
ParameterizedType mType = buildType(DefaultModel.class, ArrayList.class, DictItem.class); -
解析json数据
DefaultModel<List<DictItem>> mResult = mGson.fromJson(json, mType); -
创建新的参数化类型
protected ParameterizedType buildType(final Class raw, final Type... args) { return new ParameterizedType() { public Type getRawType() { return raw; } public Type[] getActualTypeArguments() { return args; } public Type getOwnerType() { return null; } }; }
以上是我处理JSON解析时使用的方法,我想用Default<List<DictItem>>这个类型,T == List<DictItem>
【问题讨论】: