Я пытаюсь использовать 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)
Есть ли способ повернуть проверку аннотации в Гсоне?
Спасибо
Клаус