/ / Jackson @JsonProperty non funziona se il nome della proprietà non è uguale al nome del campo - java, json, annotazioni, jackson

Jackson @JsonProperty non funziona se il nome della proprietà non è uguale al nome del campo - java, json, annotazioni, jackson

Ho seguito JSON

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

E classe vincolante

public class GodBinding {

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

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

// constructors
// getters & setters
}

E followng maven dependencies 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 pubblico un tale json, ho un risultato inaspettato con null.

GodBinding [name=null, age=0]

Se uso @JsonProperty senza nomi e inviamo JSON dove nomi di proprietà corrispondono a nomi di campi

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

allora sta funzionando bene

GodBinding [name=Zevs, age=320]

Se qualcuno lo sa, come rendere @JsonProperty ("nome") sui campi che funzionano correttamente?

risposte:

-1 per risposta № 1

dovresti aggiungere questo al tuo POM

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

puoi vedere un esempio Qui