在保存json之前,Spring roo没有识别日期格式

时间:2011-12-06 14:51:59

标签: mysql spring date jpa spring-roo

我在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知道它正在处理什么类,并为该类中的所有日期构建格式化程序。恶!

1 个答案:

答案 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 );