#java #json #jaxb #annotations #jackson
#java #json #jaxb #аннотации #джексон
Вопрос:
Я пытаюсь использовать аннотации JAXB для преобразования POJO в JSON и обратно так, как не работает ObjectMapper Джексона по умолчанию, т. Е. Переименовывать поля и помечать их как не сериализованные. Хотя я не смог найти никакой документации о том, как его использовать без создания сервлета.
Как мне преобразовать строку с помощью JSON в (аннотированный) POJO и обратно?
Комментарии:
1. где какой-либо из этих ответов полезен?
2. @Arno_Geismar Оба ответили на другой вопрос. Я опубликую свой собственный ответ, как только у меня появится время для извлечения кода из исходных текстов.
Ответ №1:
Вы ищете @JsonIgnore ? Эта аннотация будет отмечать определенное поле, поэтому Джексон будет игнорировать его при преобразовании POJO в JSON.
public class Foo(){
@JsonIgnore
String dontSerializeThis;
@JsonProperty
String serializeThis;
}
Ответ №2:
Если вы хотите придерживаться только аннотаций JAXB, Jackson поддерживает @XmlTransient
. Джексон приравнивает его к собственной @JsonIgnore
аннотации.
Откуда: http://wiki.fasterxml.com/JacksonJAXBAnnotations
@javax.xml.bind.annotation.XmlTransient
Used to mark a class, field, or property as _transient_ (i.e. will not be serialized); that is, same as what @JsonIgnore would indicate
Чтобы включить обработку аннотаций JAXB в Jackson, см. Раздел Регистрация интроспектора аннотаций JAXB по ссылке выше.
Комментарии:
1. Неполный ответ. Это только аннотация, а не то, как я на самом деле получаю json, который является строкой из экземпляра класса.