/ / Jackson @JsonProperty não funciona se o nome da propriedade não for igual ao nome do campo - java, json, anotações, jackson

Jackson @JsonProperty não funciona se o nome da propriedade não for igual ao nome do campo - java, json, anotações, jackson

Tenho seguindo JSON

{
"known-name": "Zevs",
"approximate-age": 320
}

E classe de ligação

public class GodBinding {

@JsonProperty("known-name")
public String name;

@JsonProperty("approximate-age")
public int age;

// constructors
// getters & setters
}

E dependências do maven 2.23.2 2.5.4

 <dependencies>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet</artifactId>
<version>${jersey.version}</version>
<scope>provided</scope>
</dependency>

<dependency>
<groupId>com.fasterxml.jackson.jaxrs</groupId>
<artifactId>jackson-jaxrs-json-provider</artifactId>
<version>${jackson.version}</version>
</dependency>
</dependencies>

Se eu postar esse json, então eu tenho um resultado inesperado com null "s.

GodBinding [name=null, age=0]

Se eu usar @JsonProperty sem nomes e enviar JSON onde os nomes das propriedades são iguais aos nomes dos campos

{
"name": "Zevs",
"age": 320
}

então está funcionando bem

GodBinding [name=Zevs, age=320]

Se alguém souber como fazer @JsonProperty ("name") em campos funcionando corretamente?

Respostas:

-1 para resposta № 1

você deve adicionar isso ao seu POM

<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.4.4</version>
</dependency>

você pode ver um exemplo Aqui