wub*_*bba 0 grails json localdate
在我的 Grails 4.0.5 应用程序中,我有一个域类AssignedItem:
import java.time.LocalDate
class AssignedItem
{
LocalDate dateAssigned
}
Run Code Online (Sandbox Code Playgroud)
/assignedItem/show/1当我调用使用域类 ( ) 的 JSON 视图的控制器方法时_assignedItem.gson,响应看起来不错:
{
"id": 1,
"dateAssigned": "2015-12-30"
}
Run Code Online (Sandbox Code Playgroud)
但在我的服务方法中,我将其转换AssignedItem为 JSON 以便将其发送到 ActiveMQ 队列,JSON 最终变得不必要的复杂。
服务方式
import grails.converters.JSON
void sendSampleData() {
AssignedItem assignedItem = AssignedItem.first()
JSON json = assignedItem as JSON
String jsonString = json.toString(true)
jmsService.send(queue: assignedItemQueueName, jsonString)
}
Run Code Online (Sandbox Code Playgroud)
上面代码中`jsonString如下:
{
"id": 1,
"dateAssigned": {
"dayOfWeek": {
"enumType": "java.time.DayOfWeek",
"name": "THURSDAY"
},
"month": {
"enumType": "java.time.Month",
"name": "DECEMBER"
},
"dayOfMonth": 31,
"dayOfYear": 365,
"era": {
"enumType": "java.time.chrono.IsoEra",
"name": "CE"
},
"year": 2015,
"monthValue": 12,
"chronology": {
"calendarType": "iso8601",
"id": "ISO"
},
"leapYear": false
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法修复 的行为assignedItem as JSON或者我应该以AssignedItem其他方式将其转换为 JSON ?
感谢 @puneet-behl 向我指出了这一点,我能够JsonViewTemplateEngine在我的服务方法中使用 ,以便_assignedItem.gson使用我的 JSON 视图模板 ( ) 来生成 JSON:
void sendSampleData() {
AssignedItem assignedItem = AssignedItem.first()
Template t = templateEngine.resolveTemplate('/assignedItem/_assignedItem')
def writable = t.make(assignedItem: assignedItem)
def sw = new StringWriter()
writable.writeTo( sw )
String jsonString = sw.toString()
jmsService.send(queue: assignedItemQueueName, jsonString)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
280 次 |
| 最近记录: |