您如何配置 Jackson 解析为日历的方式?无论如何设置格式?
我正在使用
@RequestMapping(value = "/assign", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public Form5398Obj arriveTrip(@PathVariable String siteId,
@RequestBody ErrorMsg anError) throws Exception {
System.out.println(anError.toString());
}
我注意到我收到错误 400,因为 ErrorMsg 中的日历字段未正确转换。如果我从 POST 中删除它,它会正常工作。
我通过搜索发现有一些标准表格对我有用 ""yyyy-MM-dd'T'HH:mm:ss.SSSZ", "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", "EEE, dd MMM yyyy HH:mm: ss zzz", "yyyy-MM-dd"
有没有明确告诉它以某种方式解析?
最佳答案
看here在常见问题解答中了解如何为 Jackson 2.0 做到这一点。
序列化常见问题解答中的示例:
public class DateStuff {
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern="yyyy-MM-dd,HH:00", timezone="CET")
public Date creationTime;
}
独立于此,可以编写自己的 Serializer 类并使用 @JsonDeSerialize(using MyDeSerializer.class)
注释属性
public class MyJsonDateDeserializer extends JsonDeserializer<Date>
{
@Override
public Date deserialize(JsonParser jsonparser,
DeserializationContext deserializationcontext) throws IOException, JsonProcessingException {
SimpleDateFormat f = new SimpleDateFormat("dd.MM.yyyy"); // german date
String d = jsonparser.getText();
try {
return f.parse(d);
} catch (ParseException e) {
throw new RuntimeException(e);
}
}
}
关于java - Spring MVC - JSON - 配置将日历解析为 Java 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27071871/