gpt4 book ai didi

groovy - 如何将 groovy 映射转换为 json

转载 作者:行者123 更新时间:2023-12-03 22:02:38 26 4
gpt4 key购买 nike

我在 Jenkins 管道中有以下代码:

stage ("distribution"){
steps{
script{
def rules = [
service_name: "core",
site_name: "*",
city_name: "*",
country_codes: ["*"]
]
amd_distribution_distribute_bundle distribution_rules: rules
}
}
}

如您所见,它是一个 map 参数。如何使用 Groovy 代码将其转换为 JSON 文件?最后它应该是这样的:
{
"distribution_rules": [
{
"service_name": "core*",
"site_name": "*",
"city_name": "*",
"country_codes": ["*"]
}
]
}

我尝试了以下命令,但没有帮助:
import groovy.json.JsonBuilder
import groovy.json.JsonOutput

def call(Map parameters)
{
def DISTRIBUTION_RULES = parameters.distribution_rules
def json = new groovy.json.JsonBuilder()
json rootKey: "${DISTRIBUTION_RULES}"
writeFile file: 'rootKey', text: JsonOutput.toJson(json)
}

最佳答案

无需在 JsonBuilder 文件中混合 JsonOutputamd_distribution_distribute_bundle.groovyJsonOutput.toJson(map) 方法采用常规 Map 并将其转换为等效的 JSON 对象。默认情况下,它会创建一个扁平的单行文件。如果您希望获得所谓的 pretty-print ,则需要使用 JsonOutput.prettyPrint(JsonOutput.toJson(map)) 的组合。

平面打印

import groovy.json.JsonOutput

def call(Map parameters) {
def DISTRIBUTION_RULES = parameters.distribution_rules

writeFile file: 'rootKey', text: JsonOutput.toJson([distribution_rules: [DISTRIBUTION_RULES]])
}

输出:
$ cat rootKey
{"distribution_rules":[{"service_name":"core","site_name":"*","city_name":"*","country_codes":["*"]}]}%

漂亮的印花

import groovy.json.JsonOutput

def call(Map parameters) {
def DISTRIBUTION_RULES = parameters.distribution_rules

writeFile file: 'rootKey', text: JsonOutput.prettyPrint(JsonOutput.toJson([distribution_rules: [DISTRIBUTION_RULES]]))
}

输出:
$ cat rootKey
{
"distribution_rules": [
{
"service_name": "core",
"site_name": "*",
"city_name": "*",
"country_codes": [
"*"
]
}
]
}%

关于groovy - 如何将 groovy 映射转换为 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58827409/

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