Ich habe versucht, einen JSON-String mit Datum desalinize aber ich folgende exception-Kann nicht konstruieren Instanz java.util.Date von String-Wert ‚/ Datum (1458672480000) /‘
org.codehaus.jackson.map.JsonMappingException: Can not construct instance of java.util.Date from String value '/Date(1458672480000)/': not a valid representation (error: Unparseable date: "/Date(1458672480000)/" (at offset 0))
at [Source: [email protected]; line: 1, column: 199]
bekommen Code Details wie unten-
DataModel-
@JsonIgnoreProperties(ignoreUnknown = true)
public class DataModel {
public Integer Capacity;
public Long Id;
public String Name;
public Date StartDate;
public Date EndDate;
public String Message;
public Integer LocationId;
public Boolean IsValid;
public Integer[] NickNames = new Integer[0];
}
JSON Saiten-
{"d":[{"__type":"my.package.name.className","Id":1,"Name":"xxx","PlaceId":2,"Message":"","IsValid":false,"NickNames":[],"StartDate":"\/Date(1458672480000)\/","EndDate":"\/Date(1458689400000)\/","Size":0,"StringStartDate":"2016-03-22T14:48:00-04:00","StringEndDate":"2016-03-22T19:30:00-04:00"}]}
De-Serialisierung code-
ObjectMapper mapper = new ObjectMapper();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
mapper.setDateFormat(dateFormat);
mapper.configure(SerializationConfig.Feature.WRITE_DATES_AS_TIMESTAMPS, false);
TypeReference<HashMap<String,DataModel[]>> typeRef= new TypeReference<HashMap<String,DataModel[]>>(){};
HashMap<String,DataModel[]> newSessions = mapper.readValue(data, typeRef);
Gibt es irgendein Problem in der JSON-String? Wenn nicht, was ist der richtige Weg, um es zu deserialisieren?
1458672480000 anstelle des Datums (1458672480000)? – null
Sie haben ein Feld namens '' StringStartDate'' in Ihrem json, das die Daten genau so enthält, wie Sie es erwarten. Dieses Feld tritt jedoch nicht in Ihrem DataModel auf. Das '' StartDate''-Feld in Ihrem json enthält ungültigen Inhalt und kann daher nicht in '' java.util.Date'' deserialisiert werden. – f1sh