Как сопоставить имена полей JSON с именами полей разных объектов?

Каков эквивалентный способ в аннотации Джексона json для следующих аннотаций jax-b?

Мне нужно создать json, а не xml, и мне нужно знать обычные аннотации Джексона, которые эквивалентно обозначаются в jax-b.

  1. переименовать поле.
  2. используйте геттеры вместо полей.

Эти функции особенно важны, если имя элемента 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_;}
}
37
задан pirho 24 October 2017 в 14:40
поделиться