有没有办法改进 Grails 4 JSON 转换器处理 LocalDate 对象的方式?

Is there a way to improve how the Grails 4 JSON converter handles LocalDate objects?

在我的 Grails 4.0.5 应用程序中,我有一个域 class AssignedItem:

import java.time.LocalDate
class AssignedItem
{
    LocalDate dateAssigned
}

当我调用我的控制器方法 /assignedItem/show/1 时,它使用我的域 JSON 视图 class (_assignedItem.gson),然后响应看起来不错:

{
  "id": 1,
  "dateAssigned": "2015-12-30"
}

但是在我将 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)
}

上述代码中`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
   }
}

有没有办法修复 assignedItem as JSON 的行为,或者我是否应该以其他方式将 AssignedItem 转换为 JSON?

感谢@puneet-behl 向我指出这一点,我能够在我的服务方法中使用 JsonViewTemplateEngine,这样我的 JSON 视图模板 (_assignedItem.gson)用于生成 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)
}