Grails-将Joda日期呈现为JSON时出现异常

Grails-将Joda日期呈现为JSON时出现异常,grails,jodatime,grails-2.0,Grails,Jodatime,Grails 2.0,我试图将命令验证错误呈现为json,但得到了一个异常。命令对象使用的是joda time DateTime对象,而不是java.util日期对象。执行json呈现的代码如下所示: def results = eventSaleDataCommand.errors.fieldErrors.toList() def errors = [] for (error in results) { errors.add([ 'type' : 'invalid_entr

我试图将命令验证错误呈现为json,但得到了一个异常。命令对象使用的是joda time DateTime对象,而不是java.util日期对象。执行json呈现的代码如下所示:

def results = eventSaleDataCommand.errors.fieldErrors.toList()
def errors = []
for (error in results) {
    errors.add([
        'type'          : 'invalid_entry',
        'field'         : error.field,
        'rejected_value': error.rejectedValue,
        'message'       : error.defaultMessage
    ])
}
render errors as JSON
我得到的例外是:
Class org.codehaus.groovy.grails.web.converters.marshaller.json.GenericJavaBeanMarshaller无法访问org.joda.time.tz.DateTimeZoneBuilder$PrecalculatedZone类的成员,且修饰符为“public”。


有人知道如何解决这个问题吗?

实现了Joda转换器。谢谢。

您使用的是什么版本的JodaTime插件?或者您根本不使用插件,只是将JodaTime用作库/jar?我在BuildConfig依赖项块中有一个对“joda time:joda time:2.0”的依赖项。好的,默认情况下Grails不知道如何将JodaTime类呈现为XML或JSON。然而,有一个插件将这种支持添加到Grails中。我建议你改用它:不幸的是,我正在开发的应用程序是Grails 2.2.3应用程序,该插件需要2.3版或更高版本。那么你最好实现自己的转换器。您可以使用该插件作为示例: