Maison >Java >javaDidacticiel >En Java, comment pouvons-nous mapper plusieurs formats de date à l'aide de Jackson ?
Jackson est une bibliothèque basée sur Java qui est utile pour convertir des objets Java en JSON et JSON en objets Java. Nous pouvons mapper plusieurs formats de date dans la bibliothèque Jackson à l'aide de l'annotation @JsonFormat, qui est une annotation générique utilisée pour configurer les détails de la façon dont une valeur de propriété est sérialisée. @JsonFormat a trois champs importants : shape, mode et timezone. Le champ shape peut définir la structure utilisée pour la sérialisation (JsonFormat.Shape.NUMBER et JsonFormat.Shape.STRING), et le champ mode peut être utilisé pour la sérialisation et la désérialisation. Pour les dates, le schéma contient des définitions compatibles SimpleDateFormat , et enfin, le champ timezone est disponible pour la sérialisation et prend par défaut le fuseau horaire par défaut du système. La traduction chinoise de
@Target(value={ANNOTATION_TYPE,FIELD,METHOD,PARAMETER,TYPE}) @Retention(value=RUNTIME) public @interface JsonFormat<strong> </strong>
import java.io.*; import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.databind.ObjectMapper; public class JacksonDateformatTest { final static ObjectMapper mapper = new ObjectMapper(); public static void main(String[] args) throws Exception { JacksonDateformatTest jacksonDateformat = new JacksonDateformatTest(); jacksonDateformat.dateformat(); } public void dateformat() throws Exception { String json = "{\"createDate\":\"1980-12-08\"," + "\"createDateGmt\":\"1980-12-08 3:00 PM GMT+1:00\"}"; Reader reader = new StringReader(json); Employee employee = mapper.<strong>readValue</strong>(reader, <strong>Employee.class</strong>); System.out.println(employee); } } // Employee class class Employee implements Serializable { @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "IST") private Date createDate; @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm a z", timezone = "IST")<strong> </strong> private Date createDateGmt; public Date getCreateDate() { return createDate; } public void setCreateDate(Date createDate) { this.createDate = createDate; } public Date getCreateDateGmt() { return createDateGmt; } public void setCreateDateGmt(Date createDateGmt) { this.createDateGmt = createDateGmt; } <strong> </strong> @Override public String toString() { return "Employee [\ncreateDate=" + createDate + ", \ncreateDateGmt=" + createDateGmt + "\n]"; } }
Employee [ createDate=Mon Dec 08 00:00:00 IST 1980, createDateGmt=Mon Dec 08 07:30:00 IST 1980 ]
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!