Как мне использовать JAXB для преобразования POJO в JSON

#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, который является строкой из экземпляра класса.