Jenkinsfile编写JSON文件

5

在我的Jenkinsfile中,我正在尝试创建并将一个简单的JSON文件写入工作区文件夹。

JSON文件的内容应为:

{"people": {"name":"john","surname":"doe"}}

有什么想法吗?


你应该可以将它写入文件而不是标准输出吧?你考虑过使用StreamWriter吗?请参阅http://docs.groovy-lang.org/latest/html/documentation/core-domain-specific-languages.html#_streamingjsonbuilder。 - Bruce Becker
JsonBuilder可序列化吗?我认为所有的Groovy JSON类方法都是不可序列化的。这似乎会导致错误。 - Matt Schuchard
3个回答

6

明白了!

script {
          def someMap = [
              'name' : "john",
              'surname' : "doe"
          ]
          def json = new groovy.json.JsonBuilder()
          json "people": someMap
          def file = new File("$WORKSPACE/people.json")
          file.write(groovy.json.JsonOutput.prettyPrint(json.toString()))
        }

1
如果您不想使用任何插件,可以通过核心Jenkins方法writeFile进行解决,例如:
writeFile(
    file: "foo/bar.json",
    text: """\
        {
            'a': 'x',
            'b': 'y'
        }
    """.stripIndent()
)

1

1
我已经尝试过了,但是出现了以下错误:java.lang.ClassCastException: org.jenkinsci.plugins.pipeline.utility.steps.json.WriteJSONStep.json期望接口net.sf.json.JSON,但收到的是类java.lang.String。 - JoP
无法帮您解决Java问题。我会在问题中添加Java标签。 - Eugene Mihaylin
我不使用Java,而是使用普通的Groovy。 - JoP
Java平台,我已经添加了两个标签。 - Eugene Mihaylin
@JoP 听起来你使用该方法的方式不正确。请更新你的问题? - Matt Schuchard

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接