2013-08-27 2 views
0

Может ли кто-нибудь указать мне хорошее объяснение критериев, которые должен выполнить класс, чтобы использовать дезертилизатор по умолчанию для Джексона?Могу ли я использовать DataSet как свой объект?

Я могу сделать сообщение и предоставить HashMap-коллекцию string/jsonObjects, но он не будет работать с набором данных, который содержит ту же информацию в строке. Я попытался реализовать свой собственный Deserializer, но ответ всегда «Unprocessable Entity». Я успешно использовал определенные классы, но я пытаюсь обобщить свое решение, передав набор данных.

Очевидно, мне нужно лучше понять, что происходит! ТИА!

ответ

0

Это зависит от грубого типа вашего класса. Джексон специализируется обработки для:

  • Массивы типов
  • Collection реализации
  • Map реализаций
  • Enum s
  • Другое

Если тип не является ни один из первых 4-х категориях, его будет считаться «другим», и ожидается, что он будет следовать конвенции Java Bean eithe r публичных полей или геттеров и/или сеттеров. Там также должен быть конструктор без аргументов (не нужно быть публичным) или другой конструктор с аннотацией @JsonCreator - ожидать, что некоторые государственные Конструкторы с одним аргументом (String, int/Integer, long/Long, boolean/Boolean) являются также принимается при привязке от значений Scalar от JSON.

Но для получения дополнительной информации вы действительно должны поделиться фактическим исключением, которое вы получаете: выше всего лишь общая идея того, что необходимо. Джексон может работать со всеми типами классов и не является особенно строгим в том, как определяются классы. Но у него есть ожидания относительно того, как различные JSON Structures соответствуют POJO.

Смежные вопросы