Un problema con su ejemplo y Jackson son las opciones predeterminadas de los nombres de propiedades JSON: Jackson verá isDone
y setDone
y elija done
como el nombre de la propiedad JSON. Puede anular esta opción por defecto utilizando la anotación JsonProperty
:
public class Status
{
private boolean isDone;
@JsonProperty("isDone")
public boolean isDone()
{
return this.isDone;
}
@JsonProperty("isDone")
public void setDone(boolean isDone)
{
this.isDone = isDone;
}
}
continuación:
Status instance = new Status();
String jsonString = null;
instance.setDone(true);
ObjectMapper mapper = new ObjectMapper();
jsonString = mapper.writeValueAsString(instance);
Ahora jsonString
contiene { "isDone" : true }
. Tenga en cuenta que también puede escribir la cadena en OutputStream
usando ObjectMapper.writeValue(OutputStream, Object), o en Writer
usando ObjectMapper.writeValue(Writer, Object).
En este caso, realmente solo necesita la anotación JsonProperty
en cualquiera de sus accesadores, pero no en ambos. Simplemente haciendo una anotación en isDone
obtendrá el nombre de la propiedad JSON que desee.
Una alternativa a usar la anotación JsonProperty
es cambiar el nombre de sus accesos setIsDone/getIsDone
. Entonces las anotaciones son innecesarias.
Consulte el tutorial rápido y sucio de Jackson: Jackson in 5 minutes. La comprensión de las propiedades específicas vino de mirar a través de los documentos para las anotaciones de Jackson.
gracias, ¿me puede indicar en la dirección en que se explica esto? o está disperso entre los documentos? – user701254