Как сопоставить имена полей JSON с различными именами полей объекта?
Каков эквивалентный способ в аннотации json Джексона для следующих аннотаций jax-b?
Мне нужно создать json, а не xml, и мне нужно знать обычные аннотации Джексона, которые эквивалентно обозначены в jax-b.
переименовать поле.используйте геттеры вместо полей.Эти функции особенно важны, если имя элемента json / xml является зарезервированным словом java, например "new
","public
","static
", и т.д.
Так что мы должны назвать поля POJO как «_new_», «_public_», «_static_» и т. Д., Соответственно,
но используйте аннотацию jax-b, чтобы переименовать их обратно в «new», «public», «static» и т. д. в сгенерированных элементах XML (и json).
Переименование поля
@XmlAccessorType(XmlAccessType.FIELD)
public class Person{
@XmlElement(required = true)
protected String name;
@XmlElement(required = true)
protected String address;
@XmlElement(name = "contractor")
protected boolean _restricted_ ;
@XmlElement(name = "new")
protected boolean _new_ ;
}
Перенаправить на использование свойства getter (Я думаю, что это так в jax-b)
@XmlAccessorType(XmlAccessType.PROPERTY)
public class Person{
protected String name;
protected String address;
protected boolean _restricted_ ;
protected boolean _new_ ;
@XmlElement(required = true)
protected String getName() {return name;}
@XmlElement(required = true)
protected String getAddress() {return address;}
@XmlElement(name = "contractor")
protected boolean getRestricted() {return _restricted_;}
@XmlElement(name = "new")
protected boolean getNew(){return _new_;}
}