gpt4 book ai didi

json - Grails JSON编码

转载 作者:行者123 更新时间:2023-12-02 14:47:09 25 4
gpt4 key购买 nike

我有一个与另一个域对象具有1-M关系的域对象,例如

人1-> M语言

我已经注册了一个JSON对象编码器来编码Person对象。我正在处理的一个用例以表格格式显示“人”,默认情况下显示主要语言。

我遇到的问题是,当用户生成语言搜索时,我想显示该人的匹配语言,而不是主要语言。

我遇到的问题是,我不知道如何访问在编码对象中搜索的语言,因此,我无法确定要以表格格式在JSON中呈现的匹配语言。

这是我为Person提供的示例代码:

JSON.registerObjectMarshaller(Person) {  

def returnArray = [:]
returnArray['id'] = it.id
returnArray['name'] = it.displayName?:""
//I would like to be able to get the language matching a search param here
//when a search has been carried out
returnArray['language'] = it.primaryLanguage?:""

}

目前,我要解决的问题是要有一个PersonWrapper,在其中我要在构造函数中传递搜索项,为包装器注册一个对象编码器,并在包装​​器中进行过滤。

这对我来说似乎很浪费,因为我需要遍历域结果并为每个实例创建一个包装器。

任何建议将不胜感激。

最佳答案

也许您正在寻找类似的东西:

def filterLang = Language.findByCode("de")

// search for persons having the filter language assigned
def foundPersons = Persong.executeQuery("select p from Person as p inner join p.languages as lang where lang = :filterLang",[filterLang : filterLang])

def json = []

foundPersons .each {
json << [id: it.id, name: it.name, language: filterLang]
}

render json as JSON

关于json - Grails JSON编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6119980/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com