gpt4 book ai didi

json - 使用对象的部分属性在 GRAILS 中呈现 JSON

转载 作者:行者123 更新时间:2023-12-04 14:20:38 26 4
gpt4 key购买 nike

我正在尝试从两个字段构建 JSON。说,我有一个对象(派对)列表,我只需要将 2 个项目作为 JSON 对传递。

def list = getMyList() //it contains 2 party objects
partyTo = array {
for (i in list) {
x partyId: i.id
y partyName: i.toString()
}
}

JSON 字符串是
{
"partyTo": [
{"partyId":12},
{"partyName":"Ar"},
{"partyId":9},
{"partyName":"Sr"}
]
}

当我在客户端提取它时,它被视为 4 个对象。我想要 2 个对象,格式如下。
{
"partyTo": [
{"partyId":12, "partyName":"Ar"},
{"partyId":9 , "partyName":"Sr"}
]
}

我得到 4 个对象,可能是因为我使用数组来构建 JSON。我是 groovy 和 JSON 的新手,所以不确定正确的语法组合。任何帮助高度赞赏。
谢谢。

最佳答案

你是对的,问题出在你的数组的构造上。要获得所需的输出,您需要一组 map ,每个对象一个 map ,要获得整个“partyTo”对象,您需要将该列表添加到另一个 map :

    def parties = [
["id":12 , "name":"Ar", "privateField": "a"],
["id":9 , "name":"Sr", "privateField": "b"]
]

def toRender = parties.collect { party->
["partyId": party.id, "partyName":party.name]
}

def result = ["partyTo" : toRender]
render result as JSON

换句话说,Grails 映射变成了 JSON 对象,而 Grails 数组和列表变成了 JSON 中的数组

如果你总是想像这样渲染你的“派对”对象,你可以考虑使用 ObjectMarshaller .更多详细信息,请参阅 rendering JSON using object marshallers 上的帖子

关于json - 使用对象的部分属性在 GRAILS 中呈现 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2562684/

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