我有一个类,表示有LocalDate
字段的数据。
public class Student {
private String name;
private LocalDate dob;
//getters and setters
}
在pom.xml
我jackson-modules-java8
,以便Local
日期可以反序列化。我无法准备正确的JSON以便能够发送POST
。这是:
{ "name" : "John", "dob" : [ 1986::10::06 ] }
在对POST
的回复中,我得到Cannot deserialize instance of
java.time.LocalDate out of START_ARRAY token
。使用注释@JsonFormat(pattern = "yyyy::MM::dd")
来装饰字段dob并不起作用。三年前workaround已经出版,但事情可能已经发生变化。
答案 0 :(得分:0)
根据json值的w3school描述:
在JSON中,值必须是以下数据类型之一:
- 一个字符串
- 一个数字
- 一个对象(JSON对象)
- 一个数组
- 布尔
- 空
根据此定义,您的json无效,因为[1986::10::06]
不是有效值。
您需要将其视为字符串,在其周围添加"
个字符而不是方括号。
正确的json必须是
{ "name" : "John", "dob" : "1986::10::06" }
答案 1 :(得分:0)
LocalDate API文档说:
ISO-8601日历系统中没有时区的日期,例如 2007-12-03
所以你JSON应该是这样的:
{ "name" : "John", "dob" : "1986-10-06" }