Formatage de Java 8 LocalDate avec Jackson
Problème :
Dans les applications Java, conversion de Date les objets au format JSON avec des modèles de date spécifiques peuvent être simples à l'aide de l'annotation @JsonFormat. Cependant, lorsqu'il s'agit de java.time.LocalDate introduit dans Java 8, la même approche peut ne pas fonctionner comme prévu.
Solution proposée :
Pour personnaliser le formatage de Objets LocalDate pour la sérialisation JSON, l'approche suivante peut être utilisée :
Exemple Code :
ContextResolver :
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; @Provider public class ObjectMapperContextResolver implements ContextResolver<ObjectMapper> { @Override public ObjectMapper getContext(Class<?> type) { ObjectMapper mapper = new ObjectMapper(); mapper.registerModule(new JavaTimeModule()); mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false); return mapper; } }
Classe de ressources :
import java.time.LocalDate; @Path("person") public class LocalDateResource { @GET public Person getPerson() { return new Person(LocalDate.now()); } }
Personne Classe :
public class Person { @JsonDeserialize(using = LocalDateDeserializer.class) @JsonSerialize(using = LocalDateSerializer.class) private LocalDate birthDate; }
En mettant en œuvre cette approche, LocalDate les objets peuvent être sérialisés et désérialisés efficacement, permettant un formatage JSON flexible.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!