【发布时间】:2020-11-04 11:42:50
【问题描述】:
我正在尝试将 jenkinsfile 中的地图转换为我正在使用的 json
def pullRequestData = [
title: "Deployment-to-SIT",
description: "Pull request from",
state: "OPEN",
open: "true",
closed: "false",
fromRef: [
id: "refs/heads/${branchjsonObj.displayId}",
repository: [
slug: "${reposlug}",
name: "null",
project: [
key: "${projectkey}"
]
]
]
]
def jsonmap = JsonOutput.toJson(pullRequestData)
echo ${jsonmap}
以 json 格式提供输出,但没有字符串,
{title:Deployment-to-SIT,description:Pull request from,state:OPEN,open:true,closed:false,fromRef:{id:refs/heads/deployment-to-SIT,repository:{slug: argocd-sample-chart,name:null,project:{key:TD}}}}
但我需要的输出是
{"title":"Deployment-to-SIT","description":"Pull request from","state":"OPEN","open":"true","closed":"false", "fromRef":{"id":"refs/heads/deployment-to-SIT","repository":{"slug":"argocd-sample-chart","name":"null","project": {"key":"TD"}}}
也试过了,
def jsonpullRequestData = this.steps.writeJSON(file: 'jsonmap.json', json: pullRequestData)
但行为是相同的,o/p 没有引号。任何帮助将不胜感激。
【问题讨论】:
-
这是不正确的 json:
{ "a" : "b",{"c" : "d"}}。这是不正确的代码:def map = [a : "b",[c : "d"]]。可能这是 jenking 允许您使用此代码的错误,但在 groovy 中这是错误的代码。 -
@daggett 请现在检查问题,如果不正确请告诉我
-
我没有从你的代码中看到 map 参数的值是什么,你把它放在哪里。实际上,这两种变体都应该产生正确的 json。因此,请质疑您传递给这些变体的内容。
-
@daggett 感谢您的回复,请查看现在更新的问题
-
应该是
echo jsonmap。您能否添加结果的屏幕截图。
标签: json groovy jenkins-pipeline