Como mapear nomes de campos JSON para diferentes nomes de campos de objetos?
Qual é a maneira equivalente na anotação Jackson Jackson para as seguintes anotações jax-
Preciso produzir json em vez de xml e preciso conhecer as anotações de jackson convencionais que são equivalentemente indicadas em jax-
renomeie um campo. use getters em vez de campo Esses recursos são especialmente cruciais se o nome do elemento json / xml for uma palavra reservada em java como "new
","public
","static
"etc.
Para que tenhamos de nomear os campos do POJO como "_new_", "_public_", "_static_", etc, respectivamente,
mas use a anotação jax-b para renomeá-los para "novo", "público", "estático" etc. nos elementos XML (e json) gerado
Renomeando um campo
@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_ ;
}
Redirecione para usar o getter de propriedades (Acho que é assim que é feito em 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_;}
}