Grails视图为DTO对象列表呈现额外的逗号

Grails视图为DTO对象列表呈现额外的逗号,grails,Grails,我正在将Grails4.0.0应用程序升级到4.0.4。应用程序大部分都在运行。 我遇到了一个返回DTO集合(不是域对象)的GSON视图的问题 版本:Grails4.0.4、Gorm7.0.6.RELEASE、Win10、OpenJDK1.8.0262 它返回一个预期对象的数组,但在4.0.4中,在开头的花括号后的字段前面有一个额外的逗号,即: [{,*MY EXPECTED OBJECT 1 DATA*} , {,*MY EXPECTED OBJECT 2 DATA*}] 这让客户感到不安

我正在将Grails4.0.0应用程序升级到4.0.4。应用程序大部分都在运行。 我遇到了一个返回DTO集合(不是域对象)的GSON视图的问题

版本:Grails4.0.4、Gorm7.0.6.RELEASE、Win10、OpenJDK1.8.0262

它返回一个预期对象的数组,但在4.0.4中,在开头的花括号后的字段前面有一个额外的逗号,即:

[{,*MY EXPECTED OBJECT 1 DATA*} , {,*MY EXPECTED OBJECT 2 DATA*}] 
这让客户感到不安。视图看起来像:

    import com.myapp.dto.MyDTO
    
    model {
        List<MyDTO> MyDTOList
    }
    
    json g.render(template: "itemView", collection: MyDTOList)

如果我从视图(即空白视图)中删除Affield,则不会插入额外的逗号。如果我能提供更多信息,请告诉我。谢谢。

您尚未描述所需的响应结构,但这里有一个合理的猜测

请参阅上的项目

当我运行该应用程序并向该操作发送请求时,我得到以下响应:

[
    {
        "afield": "MY EXPECTED OBJECT 1 DATA"
    },
    {
        "afield": "MY EXPECTED OBJECT 2 DATA"
    }
]

非常感谢杰夫,这对解决这个问题有很大帮助。我遵循这个模式,删除了对g.render的使用,视图按预期呈现,客户端应用程序很满意。
package daftspanieljson

import com.myapp.dto.MyDTO

class MyDTOController {
    static responseFormats = ['json', 'xml']

    def index() {
        def data = [new MyDTO(afield: 'MY EXPECTED OBJECT 1 DATA'),
                    new MyDTO(afield: 'MY EXPECTED OBJECT 2 DATA')]

        respond data
    }
}
import com.myapp.dto.MyDTO

model {
    List<MyDTO> myDTOList
}

json tmpl.itemView(myDTOList)
import com.myapp.dto.MyDTO

model {
    MyDTO myDTO
}

json {
    afield myDTO.afield
}
[
    {
        "afield": "MY EXPECTED OBJECT 1 DATA"
    },
    {
        "afield": "MY EXPECTED OBJECT 2 DATA"
    }
]