我得到了 json 文件和第三方类:Dealer 和接口 IDealerAttributes(我不能更改它们中的任何一个);(我删除了包名和导入以使代码简单)
JSON文件
{
"serviceURL": "com.mycompany.serviceURL",
“经销商属性”:[
{
“语言”:“语言0”,
"dealerAttributeName": "dealerAttributeName0",
“更新日期”:0
},
{
“语言”:“语言 1”,
"dealerAttributeName": "dealerAttributeName1",
“更新日期”:1
}
]
}
类经销商{
私有字符串服务URL;
私有列表dealerAttributes;
公共经销商(){
经销商属性 = 新的 ArrayList();
}
//Getter 和 Setter...
}
公共接口 IDealerAttributes {
公共字符串 getLanguage();
公共字符串 getDealerAttributeName();
公共长 getUpdateDate();
}
一旦我使用:
gson.fromJson(jsonObj.toString(), Dealer.class);
我将从这一行得到例外:
将 json 字符串解组为对象的异常:com.google.gson.JsonParseException:JsonDeserializer com.google.gson.DefaultTypeAdapters$CollectionTypeAdapter@60e26ffd 无法反序列化 json 对象 [{"language":"language0","dealerAttributeName":"dealerAttributeName0" ,"updateDate":0},{"language":"language1","dealerAttributeName":"dealerAttributeName1","updateDate":1}] 给定类型 java.util.List
如何根据 Dealer.class、IDealerAttributes 读取这个 json 文件?
但是我可以添加一个类,比如说:
公共类 DealerAttributes 实现 IDealerAttributes {
私有字符串语言;
私人字符串经销商属性名称;
私人长更新日期;
公共 DealerAttributes() {
}
//Getter 和 Setter...
}
由于我是 json/gson 的新手,请您提供详细说明来帮助我吗?谢谢。
[已添加] 考虑 Dealer 类中是否有 100 个字段,并且在 Dealer 中使用/嵌套了另外 100 个接口。我在想是否有人有使用这种方式的经验:(MyType 是接口)
gson.registerTypeAdapter(MyType.class, new MyType());`