usa tutorial que para instalar index funciona elastic ejemplo crear como comandos java xml json annotations jackson

java - tutorial - para que se usa elastic search



¿Cómo asignar nombres de campo JSON a diferentes nombres de campo de objeto? (2)

Con algún ejemplo, también puede usar en el getter y setter para cambiar el nombre a un campo diferente

public class Sample { private String fruit; @JsonProperty("get_apple") public void setFruit(String fruit) { this.fruit = fruit; } @JsonProperty("send_apple") public String getFruit() { return fruit; } }

¿Cuál es la forma equivalente en la anotación de Jackson json para las siguientes anotaciones de jax-b?

Necesito producir json en lugar de xml y necesito conocer las anotaciones de jackson convencionales que se denotan de manera equivalente en jax-b.

  1. renombrar un campo
  2. utilizar getters en lugar de campos.

Estas características son especialmente importantes si el nombre del elemento json / xml es una palabra reservada de java como " new ", " public ", " static ", etc.

Para que tengamos que nombrar los campos POJO como "_new_", "_public_", "_static_", etc, respectivamente,

pero use la anotación jax-b para renombrarlos a "nuevo", "público", "estático", etc. en los elementos XML (y json) generados.

Renombrando un 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_ ; }

Redirigir al uso del captador de propiedades (creo que así es como se hace en 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_;} }


Probablemente sea un poco tarde pero de todos modos ..

Puedes renombrar una propiedad simplemente agregando

@JsonProperty("contractor")

Y de forma predeterminada, Jackson utiliza el getter y el setter para serializar y deserializar.

Para obtener información más detallada: http://wiki.fasterxml.com/JacksonFAQ