我在MySQL上使用Spring Roo。我通过Roo生成的JSON方法提取日期,以浏览器形式更改该数据,并通过Roo生成的JSON方法将其保存回来。
我出去的日期格式是yyyy-MM-dd
,标准的MySQL日期格式。我在浏览器上使用了一个日历小部件,以确保我提交的日期格式相同。
不幸的是,我的数据没有通过...FromJson()
方法,但没有错误:
Parsing date 2007-12-12 was not recognized as a date format
我认为问题在于它是以字符串形式出现的,但JPA感觉它需要生成一个Date
对象来进行更新。
我很高兴地展示了我的代码,但这并不是Roo没有为我构建的。
当我说“被识别为日期格式”时,它就会出现这种情况。有什么地方我可以改变它知道的日期格式吗?
编辑:在@ nowaq的帮助下,这是最终答案:
public static Lease fromJsonToLease(String json) {
return new JSONDeserializer<Lease>()
.use(null, Lease.class)
.use(Date.class, new DateFormatter("yyyy-MM-dd"))
.deserialize(json);
}
这样JSONDeserializer知道它正在处理什么类,并为该类中的所有日期构建格式化程序。恶!
答案 0 :(得分:0)
您的问题与此问题非常相关:Spring-roo REST JSON controllers mangle date fields请查看并确保您在JSON反序列化程序中使用了正确的DateTrasformer。 E.g。
new JSONDeserializer()
.use(Date.class, new DateTransformer("yyyy-MM-dd") )
.deserialize( people );