当我试图使用LocalDateTime解析包含json视图 8 LocalDateTime的简单域模型对象时,我会收到堆栈溢出异常,这似乎与GSON不知道Java8 LocalDateTime有关。
下面是一个示例(grails视图和JSON文档):
域类“人”
import java.time.LocalDate
class Person
{
Sting name
LocalDate birthDate
}
PersonController
class PersonController
{
def index() {
respond Person.findAll() as List<Person>
}
}
index.gson视图
@Field List<Person> personList
json tmpl.person(personList)
_person.gson模板文件
model
{
Person person
}
json g.parse(person)
当我试图打开此视图时,会引发堆栈溢出异常:
由: grails.views.AbstractWritableScript.writeTo(AbstractWritableScript.groovy:43):错误呈现视图: null在grails.plugin.json.view.api.internal.DefaultGrailsJsonViewHelper$6.writeTo(DefaultGrailsJsonViewHelper.groovy:677)处的grails.views.ViewRenderException引起
当我将_person.gson简化为:
...
json
{
name person.name
}
Thew视图按预期工作。
我的问题是
在Grails视图中是否存在处理Java 8 LocalDate/Time属性的默认方法?如果没有,我怎么能永久注册一个新的GSON构建器
发布于 2017-03-02 16:45:29
这些java 8日期支持还没有在json视图中实现。这将与视图1.2.0 (发布时)和最新版本的grails-java8插件一起使用。
编辑:澄清一下,只有在使用内置渲染策略(g.render、hal.render、jsonapi.render等)时才支持它。您仍然可以自己以任何想要的方式构造视图:
json {
someLocalDate LocalDate.now.format(...)
}
Edit2: jsonViews1.2与grails-java8plugin(也是1.2版本)一起发布。Java 8日期类型呈现现在支持与两个插件一起开箱即用。
https://stackoverflow.com/questions/41056479
复制相似问题