property name jsonproperty annotation java jquery hibernate jquery-ui jackson

java - jsonproperty - jackson rename property



Cambiar el nombre del campo en JSON usando Jackson (3)

Estoy usando jackson para convertir un objeto mío en json. El objeto tiene 2 campos:

@Entity public class City { @id Long id; String name; public String getName() { return name; } public void setName(String name){ this.name = name; } public Long getId() { return id; } public void setName(Long id){ this.id = id; } }

Como quiero usar esto con la función de autocompletar jQuery, quiero que ''id'' aparezca como ''valor'' en el json y ''nombre'' para que aparezca como ''etiqueta''. La documentación de jackson no está clara en esto y he intentado cada anotación que incluso remotamente parece que hace lo que necesito pero no puedo hacer que el name aparezca como label e id para que aparezca como value en el json.

¿Alguien sabe cómo hacer esto o si esto es posible?


¿Has probado con @JsonProperty?

@Entity public class City { @id Long id; String name; @JsonProperty("label") public String getName() { return name; } public void setName(String name){ this.name = name; } @JsonProperty("value") public Long getId() { return id; } public void setId(Long id){ this.id = id; } }


Hay una opción más para cambiar el nombre del campo:

Jackson MixIns .

Es útil si trabajas con clases de terceros, que no puedes anotar , o simplemente no quieres contaminar la clase con anotaciones específicas de Jackson.


Tenga en cuenta que hay org.codehaus.jackson.annotate.JsonProperty en Jackson 1.x y com.fasterxml.jackson.annotation.JsonProperty en Jackson 2.x. Compruebe qué ObjectMapper está utilizando (desde qué versión) y asegúrese de utilizar la anotación adecuada.