Остановить Gson от анализа аннотаций классов - PullRequest
3 голосов
/ 16 февраля 2011

Я пытаюсь использовать Gson на Android для маршалинга / демаршаллинга JAXB-аннотированных классов.

Аннотации JAXB (XML) не предоставляются на устройстве Android, поэтому библиотека JSON НЕ ДОЛЖНА проверять аннотации - в противном случае мы сталкиваемся с java.lang.NoClassDefFoundError: javax.xml.bind.annotation.XmlElement.

У меня та же проблема с использованием Джексона , но, похоже, исправлено (благодаря StaxMan). Поскольку я не знаю, когда будет выпущено исправление, я подумал, что Gson будет альтернативой из-за этого заявления о документации:

There is no need to use any annotations to indicate a field is to be included 
for serialization and deserialization. All fields in the current class (and 
from all super classes) are included by default.

К сожалению, я все же сталкиваюсь с этой проблемой:

ERROR/AndroidRuntime(338): java.lang.NoClassDefFoundError: javax.xml.bind.annotation.XmlElement
ERROR/AndroidRuntime(338):     at java.lang.reflect.Field.getDeclaredAnnotations(Native Method)
ERROR/AndroidRuntime(338):     at java.lang.reflect.Field.getDeclaredAnnotations(Field.java:196)
ERROR/AndroidRuntime(338):     at java.lang.reflect.AccessibleObject.getAnnotations(AccessibleObject.java:199)
ERROR/AndroidRuntime(338):     at com.google.gson.FieldAttributes.getAnnotations(FieldAttributes.java:159)

Есть ли способ повернуть проверку аннотации в Гсоне?

Спасибо Клаус

1 Ответ

1 голос
/ 17 апреля 2011

xStream имеет некоторую встроенную поддержку JSON , возможно, вам следует попробовать и посмотреть, каков результат.

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