json - 在 Grails 3 JSON/rest-api 中格式化 java.time (jsr310) 对象

标签 json grails grails-3.1 jsr310

尝试在 Grails 3.1.x 休息 Controller 中使用 java.time API。

我的域对象“缺席”有一个字段

LocalDate date

build.gradle 包含
compile "org.jadira.usertype:usertype.extended:5.0.0.GA"

作为依赖

和 application.groovy 包含
grails.gorm.default.mapping = {
'user-type'(type: org.jadira.usertype.dateandtime.threeten.PersistentLocalDate, class: LocalDate)
'user-type'(type: org.jadira.usertype.dateandtime.threeten.PersistentLocalDateTime, class: LocalDateTime)

}

这适用于持久化域对象,因此它的后端/数据库端似乎可以按预期工作。

但是,当通过 RestController 序列化域对象时,我无法正确格式化我想要的方式(即 yyyy-MM-dd)。
输出是
"date": {
        "chronology": {
            "calendarType": "iso8601", 
            "class": "java.time.chrono.IsoChronology", 
            "id": "ISO"
        }, 
        "class": "java.time.LocalDate", 
        "dayOfMonth": 19, 
        "dayOfWeek": {
            "enumType": "java.time.DayOfWeek", 
            "name": "THURSDAY"
        }, 
        "dayOfYear": 140, 
        "era": {
            "enumType": "java.time.chrono.IsoEra", 
            "name": "CE"
        }, 
        "leapYear": true, 
        "month": {
            "enumType": "java.time.Month", 
            "name": "MAY"
        }, 
        "monthValue": 5, 
        "year": 2016
    }, 

但我真正想要的是
"date": "2016-05-19"

我试图在 Grails 文档中找到解决方案,但是,即使在多次搜索答案之后,我似乎也无法弄清楚。我找到了有关格式化 java.util.Date 的文档,但这不是我想要的。

GET 请求的“问题”并不多,但对于 POST 和 PUT 请求来说,它是不切实际的,所以我需要让短格式 yyyy-MM-dd 工作。

有没有人找到解决方案?

最佳答案

从 Grails Slack 问题 channel 获得了答案。目前并不容易做到。你需要自定义数据绑定(bind)和json渲染来完成这个,最终我放弃了

关于json - 在 Grails 3 JSON/rest-api 中格式化 java.time (jsr310) 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37326495/

相关文章:

grails - Grails条件多个hasMans交集

Grails为什么响应不起作用并且什么也不渲染?

spring - 如何在 Grails 3.1.6+ 中配置 SSL?

grails - 在 Grails 3 中使用 Sitemesh

从 Bootstrap 或 Job 调用时,grails 3 邮件插件 html View 给出错误

java - Spring MVC JSON 使用错误

python - 为什么 sqlalchemy 添加\到“为 postgresql json 字段提供完美的 JSON 字符串?

java - 尝试使用 JSON 将 http 发布到服务器,获取 : java. io.UnsupportedEncodingException

c - Json-c示例程序编译

java - 状态参数值与期望值不匹配