在Groovy中将列表转换为映射列表



谁能帮我把一个列表转换成Groovy中的map列表?

我有一个列表如下

[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"]}]
}

解决方案如下:

import groovy.json.JsonOutput
def packages = ["war", "jar"]
def value = "2.0.0"
def list = packages.collect { [pack : it, ver : value] }
def object = [
ProjectId: "Projects-16",
ChannelId: "Channels-41",
Version: "2.0.1.0-10",
selectedPackages: list
]
def json = JsonOutput.toJson(object)
println JsonOutput.prettyPrint(json)

JSON中的每个{}实体都是Groovy中的映射,因此期望的[{}, {}]是映射列表。您只需要使用collect和正确的转换来构造正确的对象。

编辑
我更新了解决方案,使用列表和变量value返回所需的确切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"
}
]
}

相关内容

  • 没有找到相关文章

最新更新