Я перепробовал все, что знаю, чтобы решить эту проблему, но я застрял.По какой-то причине я добавляю дату ниже в строку JSON, а Mapper
добавляет часы к дате.Почему он добавляет 18: 00: 00?
String json = "{\n" +
" \"feature\": {\n" +
" \"due_date\": \"2019-02-25\"\n" +
" }\n" +
"}";
ObjectMapper mapper = new ObjectMapper();
mapper.enable(SerializationFeature.WRAP_ROOT_VALUE);
Wrapper feature = mapper.readValue(json, Wrapper.class);
Feature sample = feature.getFeature();
System.out.println(sample.getDueDate());
public class Feature implements Serializable {
@JsonDeserialize(using = DateAdaptor.class)
private String dueDate;
public Date getDueDate() {
return due_date;
}
@JsonProperty("due_date")
public void setDueDate(Date dueDate) {
this.due_date = dueDate;
}
}
public class Wrapper implements Serializable {
private Feature feature;
public Feature getFeature() {
return feature;
}
public void setFeature(Feature feature) {
this.feature = feature;
}
}
public class DateAdaptor extends StdDeserializer<Date>{
private SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
public DateAdaptor() {
this(null);
}
protected DateAdaptor(Class<?> vc) {
super(vc);
}
@Override
public Date deserialize(JsonParser jsonparser, DeserializationContext context)
throws IOException, JsonProcessingException {
String date = jsonparser.getText();
try {
return formatter.parse(date);
} catch (ParseException e) {
throw new RuntimeException(e);
}
}
}
OUTPUT Sun Feb 24 18:00:00 CST 2019