【发布时间】:2011-10-27 14:28:56
【问题描述】:
我目前正在开发一个 Java Json 库。我自己做 HTTP 请求,让 Jackson 做 JSON 序列化。
该库在大多数情况下都可以正常工作,但在某些情况下却不行。
我有相当默认的 POJO:
public class MyClass extends MyBase {
@JsonProperty("MY_PROP")
private string myProp;
// ... some properties more
@JsonProperty("DATA")
private SubClass data;
// ... getter/setter
}
子类只是一个主要包含整数字段和两个双字段的类。超类包含来自服务器的一些状态信息。这种方式适用于其他 7 个响应类。
服务器响应看起来像
{
"MY_PROP":12,
/* and so on*/
"DATA":{ /* stuff */ }
}
当我使用一个在 HTTP 响应到达时触发的小助手类时,我的 android 手机上出现以下异常:
org.codehaus.jackson.map.JsonMappingException:没有找到适合类型[简单类型,类 my.company.at.MyClassBase] 的构造函数:无法从 JSON 对象实例化(需要添加/启用类型信息?)
但仅限于我的安卓手机。如果我在我的计算机上运行 Junit-Test - 它做的事情完全相同,我会得到反序列化的对象。有什么想法吗?
【问题讨论】: