Maison >Java >javaDidacticiel >Comment puis-je formater LocalDate de Java 8 avec Jackson sans annotations ?
Formatage de LocalDate de Java 8 avec Jackson
Le formatage basé sur les annotations de Jackson pour java.util.Date s'étend de manière transparente aux champs LocalDate dans Java 8. Pour y parvenir, évitez d'utiliser des annotations et utilisez plutôt ContextResolver de Jackson en conjonction avec le JavaTimeModule.
ContextResolver :
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; import javax.ws.rs.ext.ContextResolver; import javax.ws.rs.ext.Provider; @Provider public class ObjectMapperContextResolver implements ContextResolver<ObjectMapper> { private final ObjectMapper MAPPER; public ObjectMapperContextResolver() { MAPPER = new ObjectMapper(); MAPPER.registerModule(new JavaTimeModule()); MAPPER.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false); } @Override public ObjectMapper getContext(Class<?> type) { return MAPPER; } }
Classe de ressources :
import java.time.LocalDate; @Path("person") public class LocalDateResource { @GET @Produces(MediaType.APPLICATION_JSON) public Response getPerson() { Person person = new Person(); person.birthDate = LocalDate.now(); return Response.ok(person).build(); } @POST @Consumes(MediaType.APPLICATION_JSON) public Response createPerson(Person person) { return Response.ok( DateTimeFormatter.ISO_DATE.format(person.birthDate)).build(); } public static class Person { public LocalDate birthDate; } }
Test :
En utilisant cette approche, vous devriez être capable de sérialiser et désérialisez les valeurs LocalDate sous forme de chaînes JSON en utilisant le format ISO-8601.
Pour plus d'informations, reportez-vous à la documentation du module JSR310.
Remarque :
Depuis la version 2.7 de Jackson, le module JSR310 est obsolète. Utilisez plutôt le JavaTimeModule.
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!