使用另一个多行文件的输出来编辑json文件

我有一个json文件,我需要使用其他文件中的值对其进行编辑。需要将值应用于json文件的文件是多字符串文件

在这里,我正在使用jenkins groovy shell将文件xyz.txt的内容输出到一个名为file的变量中,该变量可用于编辑json文件。

sh '''file=`cat xyz.txt`
      printf '{ "body": "" }' > myfile.json
      sed ...................
'''

现在使用上面的代码我有一个像下面的json文件

{ "body": "" }

但是我想用xyz.txt输出的值替换“ body”旁边的空引号“”,这意味着$ {file}的值,因此是一个多行并带有单独的行。>

我该怎么做,可能使用sed或其他方法?

aqswdefr8888 回答:使用另一个多行文件的输出来编辑json文件

同时给出-R /-raw-input和-s /-slurp标志,jq使输入文件的内容可通过.过滤器访问。这可以用于您的目的,如下所示:

jq -Rs '{body:.}' xyz.txt > myfile.json
,

仅使用Groovy,就可以加载json和其他文件,根据需要更改加载的json的内容,然后将更改后的json写出。例如

def myjson = new groovy.json.JsonSlurper().parse("/tmp/myjson.json" as File)
myjson.body = ("/tmp/xyz.txt" as File).text
def result = groovy.json.JsonOutput.toJson(myjson)
println result
// ⇒ {"body":"TEST\n"}
本文链接:https://www.f2er.com/3148205.html

大家都在问