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