Grails3.2JSON视图中的Java8LocalDate

Grails3.2JSON视图中的Java8LocalDate,java,json,grails,groovy,gson,Java,Json,Grails,Groovy,Gson,当我尝试使用解析包含Java8LocalDateTime的简单域模型对象时,我收到一个堆栈溢出异常,这似乎与GSON实现不知道Java8LocalDateTime有关 下面是一个例子(): 域类“Person” 个人控制器 class PersonController { def index() { respond Person.findAll() as List<Person> } } 尝试打开此视图时,会引发堆栈溢出异常: 原因:grails.v

当我尝试使用解析包含Java8LocalDateTime的简单域模型对象时,我收到一个堆栈溢出异常,这似乎与GSON实现不知道Java8LocalDateTime有关

下面是一个例子():

域类“Person”

个人控制器

class PersonController
{
    def index() {
        respond Person.findAll() as List<Person>
    }
}
尝试打开此视图时,会引发堆栈溢出异常:

原因:grails.views.ViewRenderException:渲染视图时出错: 无效的 位于grails.views.AbstractWritableScript.writeTo(AbstractWritableScript.groovy:43) 位于grails.plugin.json.view.api.internal.DefaultGrailsJsonViewHelper$6.writeTo(DefaultGrailsJsonViewHelper.groovy:677)

当我将_person.gson简化为:

...
json 
{
   name person.name
}
W视图按预期工作

我的问题是 在GrailsJSON视图中是否有处理Java8LocalDate/Time属性的默认方法? 如果没有,我怎么能


  • 这个问题涉及:
  • 我试图实现这个:但它不会作为新的默认反序列化器注入自身,需要手动使用

这些java 8日期支持尚未在json视图中实现。这将在Views1.2.0(发布时)和当时最新版本的grails-java8插件中实现

编辑:澄清一下,只有在使用内置渲染策略(g.render、hal.render、jsonapi.render等)时才支持编辑。您仍然可以自己以任何方式构造视图:

json {
    someLocalDate LocalDate.now.format(...)
}

Edit2:Json视图1.2与grails-java8插件(也是版本1.2)一起发布。Java 8日期类型呈现现在与两个插件一起支持开箱即用。

您使用的是什么版本的JSON视图?最近的版本添加了Java 8日期支持Hello@Graemorcher,感谢您的反馈。我通过根本不使用JSON视图解决了这个问题。悲哀地但是,这个线程可能对其他遇到这个问题的人有用。我在使用maven包时遇到了上述问题:org.grails.plugins:views json:1.2.0.m2您可能需要添加到classpathGood点。我不知道这个插件,它不存在,因为上面的错误发生了。感谢您的输入。那么这是否意味着在此之前我们不能在域类中使用loacalDateTime作为rest?我只是在json视图1.1.5中遇到了这个问题,如果我有没有java8插件,这没有什么区别。你仍然可以使用json视图,你只需要自己构建它们,而不是依赖默认的呈现程序(g.render)。
model 
{
   Person person
}

json g.parse(person)
...
json 
{
   name person.name
}
json {
    someLocalDate LocalDate.now.format(...)
}