繁体   English   中英

Jackson Mapper在Android上引发异常,但在Java SE中不引发

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM