Grails 3.1.xでjava.time APIを使用しようとしました。Grails 3のjava.time(jsr310)オブジェクトの書式設定JSON/rest-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)
が含まれています}
これはドメインオブジェクトを永続化するために機能するため、そのバックエンド/ db側が期待通りに動作しているようです。
しかし、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
},
ですが、私が本当にしたいことは、私も答えを複数回検索した後、私はできません、しかし、Grailsのドキュメントで解決策を見つけることを試みた
"date": "2016-05-19"
ですそれを理解しているようだ。私はjava.util.Dateの書式設定に関するドキュメントを見つけましたが、これは私が望むものではありません。
「問題」はGETリクエストではあまりありませんが、POSTリクエストとPUTリクエストでは実用的ではないため、yyyy-MM-ddという短いフォーマットを取得する必要があります。
誰にでも解決策が見つかりましたか?