I\'m using RestTemplete to get json data from a rest api and I\'m using Gson to parse data from json format to Object
Gson gson = new Gson();
restTemplate =
The 1382828400000 value is a long (time in milliseconds). You are telling GSON that the field is a Date, and it cannot automatically convert a long into a Date.
You have to specify your fields as long values
private long dateParution;
private long heureParution;
private long dateLimite;
private long heureLimite;
and after GSON casts the JSON string to the desired Appel class instance, construct another object with those fields as Dates and convert them while assigning the values to the new object.
Another alternative is to implement your own Custom Deserializer:
public class CustomDateDeserializer extends DateDeserializer {
@Override
public Date deserialize(JsonParser jsonParser, DeserializationContext context) throws IOException, JsonProcessingException {
// get the value from the JSON
long timeInMilliseconds = Long.parseLong(jsonParser.getText());
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(timeInMilliseconds);
return calendar.getTime();
}
}
You have to set this custom deserializer on your desired fields, on the setter methods, like:
@JsonDeserialize(using=CustomDateDeserializer.class)
public void setDateParution(Date dateParution) {
this.dateParution = dateParution;
}