Из моего Jenkinsfile я пытаюсь создать и записать простой файл JSON в папку рабочей области.
Содержимое файла JSON должно быть:
{"people": {"name":"john","surname":"doe"}}
Любые идеи?
Можно ли сериализовать JsonBuilder
? Я думал, что все классные методы класса JSON несериализуемы. Похоже, это будет ошибка.
Вы можете использовать writeJSON
: записывать JSON в файл в рабочей области.
Я пробовал это и получил следующую ошибку: java.lang.ClassCastException: org.jenkinsci.plugins.pipeline.utility.steps.json.WriteJSONS tep.json ожидает интерфейс net.sf.json.JSON, но получил класс java. lang.String
не могу вам помочь с java. Я добавлю тег Java к вопросу.
Я не использую Java, а использую старый добрый Groovy.
платформа java, я добавил оба тега
@JoP Похоже, вы неправильно используете этот метод. Обновите свой вопрос?
Понятно!
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()))
}
Если вы не хотите использовать какой-либо плагин, есть обходной путь с основным методом Jenkins writeFile
, например:
writeFile(
file: "foo/bar.json",
text: """\
{
'a': 'x',
'b': 'y'
}
""".stripIndent()
)
Вы должны просто иметь возможность записать это в файл вместо стандартного вывода? Вы рассматривали возможность использования StreamWriter? См. docs.groovy-lang.org/latest/html/documentation/…