【发布时间】:2021-05-19 06:19:56
【问题描述】:
谁能帮助将列表转换为 Groovy 中的地图列表?
我有一个如下列表
[war, jar]
还有一个名为"value" = 2.0.0的变量
我想将其转换为带有地图的列表[["pack": "war", "ver": "2.0.0"],["pack": jar, "ver": "2.0.0"]]
并创建一个 json。
{
"ProjectId": "Projects-16",
"ChannelId": "Channels-41",
"Version": "2.0.1.0-10",
"selectedPackages": [{"pack": "war", "ver": "2.0.0"}, {"pack": jar, "ver": "2.0.0"]}]
}
【问题讨论】:
-
请添加您尝试过的代码以及失败的原因(例如错误、堆栈跟踪、日志等),以便我们对其进行改进。你试过
collect或collectEntries吗? -
还有
["war": "2.0.0", "jar": "2.0.0"]和[{"war": "2.0.0"}, {"jar": "2.0.0"}]不一样 -
是的。我厌倦了
collect并且能够形成["war": "2.0.0", "jar": "2.0.0"]但我不确定如何将所有内容转换为json。 -
那么,当您的实际问题有所不同时,为什么您的问题会被表述为您在构建地图/地图列表时遇到问题?您是否查看过
JsonOutput来创建 JSON? -
因为,我不确定我创建的地图是否正确。正如您指出的
["war": "2.0.0", "jar": "2.0.0"]与[{"war": "2.0.0"}, {"jar": "2.0.0"}]不同。我还尝试了list.collect { it -> "{$it: ${value}}" },它给出了[{jar: 4.0}, {war: 4.0}]。但是当我使用JsonBuilder转换为json 时,它转换为{ "channelId": "Channels-41", "selectedPackages": [ "war: 2.0.0.","jar:2.0.0" ], "version": "2.0.0.7-10", "projectId": "Projects-16" }