Джексон Маппер создает исключение на Android, но не на Java SE - PullRequest
0 голосов
/ 27 октября 2011

В настоящее время я работаю над библиотекой 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
      }

Подкласс - это просто класс, состоящий в основном из целочисленных полей и двух двойных полей.Суперкласс содержит некоторую информацию о состоянии с сервера.Этот способ работает в 7 других классах ответов.

Ответ сервера выглядит как

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

Когда я использую небольшой вспомогательный класс, который срабатывает при получении ответа HTTP, я получаю следующее исключение на своем Androidтелефон:

org.codehaus.jackson.map.JsonMappingException: не найден подходящий конструктор для типа [простой тип, класс my.company.at.MyClassBase]: невозможно создать экземпляр объекта JSON (необходимо добавить / включитьтипа информации?)

но только на моем андроид телефоне.Если я запускаю Junit-Test на моем компьютере - который делает то же самое, я получаю десериализованный объект.Есть идеи?

1 Ответ

0 голосов
/ 28 октября 2011

Я не знаю причину, но если у класса нет конструктора по умолчанию (без аргументов), возможно, попробуйте добавить его? Javac должен добавить один, если конструкторов не существует, но мне интересно, может ли компилятор Android создать другой тип класса в этом случае.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...