Jackson Mapper在Android上抛出Exception,但在Java SE中抛出异常

时间:2011-10-27 14:28:57

标签: android jackson

我目前正在开发一个Java Json库。我自己做HTTP请求,让杰克逊做JSON序列化。

在大多数情况下,图书馆工作正常,但在一种情况下,图书馆没有。

我有相当默认的POJO:

      public class MyClass extends MyBase {
           @JsonProperty("MY_PROP")
           private string myProp;

           // ... some properties more

           @JsonProperty("DATA")
           private SubClass data;

           // ... getter/setter
      }

子类只是一个主要包含Integer字段和两个双字段的类。超类包含来自服务器的一些状态信息。这种方式适用于其他7个响应类。

服务器响应类似于

      {
         "MY_PROP":12,
         /* and so on*/
         "DATA":{ /* stuff */ }
      }

当我使用一个在HTTP响应到来时触发的小助手类时,我在Android手机上出现以下异常:

org.codehaus.jackson.map.JsonMappingException:找不到类型[simple type,class my.company.at.MyClassBase]的合适构造函数:无法从JSON对象实例化(需要添加/启用类型信息?)< / p>

但只能在我的Android手机上。如果我在我的计算机上运行Junit-Test - 这与完全相同的东西我获得了反序列化的对象。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我不知道根本原因,但如果该类没有默认(no-arg)构造函数,可能尝试添加一个?如果不存在构造函数,Javac应该添加一个,但是我想知道在这种情况下Android的编译器是否会产生不同类的类。