从 json 文件中解析 grails 中的日期
Posted
技术标签:
【中文标题】从 json 文件中解析 grails 中的日期【英文标题】:parsing date in grails from a json file 【发布时间】:2012-06-02 21:19:27 【问题描述】:我正在处理一个 JSON 文件,我需要将它转换为一个对象。到目前为止,一切似乎都很简单,但我在尝试解析日期时发现了一个问题。
我正在尝试做这样的事情:
//My JSON file
data=
"title":"myTitle"
"releaseDate":"2012-05-28"
//Myclass
class Book
String title
Date date
Book book = JSON.parse(data)
我收到一个错误:
Cannot cast object with class 'org.codehaus.groovy.grails.web.json.JSONObject' to class 'Book' due to:
org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object '2012-05-28' with class 'java.lang.String' to class 'java.util.Date'
我想我知道为什么会发生这种情况(显然,我不能将字符串转换为日期)但我不知道如何解决它。
我也尝试在Config.groovy
中定义我的格式日期,如下所示:
grails.converters.json.date = 'yyyy-MM-dd'
【问题讨论】:
这似乎是Grails date unmarshalling的副本 我已经看过这篇文章,但该解决方案对我不起作用。还有其他想法吗?谢谢! 【参考方案1】:这是一个最近讨论的话题。最近的 GRAILS 版本,比如 3.x,具有强大的简单支持。参见例如this answer。 简而言之,您必须在 application.yml 或 application.groovy 中插入一个通用格式列表,以阐明从字符串到日期的转换。例如在 application.groovy 中:
grails.databinding.dateFormats = ["yyyy-MM-dd'T'hh:mm:ss.S'Z'", 'ddMMyyyy', 'yyyy-MM-dd HH:mm:ss']
如果你有一个带有 Date 属性的域 Book.groovy
def book = new Book(JSON.parse(stringJson))
将完美运行。使用 GRAILS 3.1.6 测试。
【讨论】:
以上是关于从 json 文件中解析 grails 中的日期的主要内容,如果未能解决你的问题,请参考以下文章