[英]Jackson Mapper throws Exception on Android, but not in Java SE
我目前正在研究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
}
子类只是具有大部分Integer字段和两个double字段的类。 超类包含来自服务器的一些状态信息。 这种方式适用于其他7个响应类。
服务器响应看起来像
{
"MY_PROP":12,
/* and so on*/
"DATA":{ /* stuff */ }
}
当我使用一个在HTTP响应到达时触发的小助手类时,我在Android手机上收到以下异常:
org.codehaus.jackson.map.JsonMappingException:没有找到类型[简单类型,类my.company.at.MyClassBase]的合适构造函数:无法从JSON对象实例化(需要添加/启用类型信息吗?)
但仅在我的Android手机上。 如果我在计算机上运行Junit-Test-它执行的操作与获得反序列化对象的功能完全相同。 有任何想法吗?
我不知道根本原因,但是如果该类没有默认的(no-arg)构造函数,也许尝试添加一个? 如果不存在构造函数,则Javac应该添加一个,但是我想知道在这种情况下Android的编译器是否会生成其他类型的类。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.