如何将 json 变量附加到另一个变量?
How to append a json variable to another?
我想避免使用 JSON 文件并使用变量,但它不起作用
element='{"x": "zero"}'
example='{
"a": "one",
"b": "two",
"c": "three",
}'
jq -s '.[0] * .[1]' element.json example.json
如果 JSON 文件的内容与 vars 的单引号内的内容完全相同,它将按预期工作。但我也希望该元素是第一个元素(使用 *
它不会排在第一位,使用 +=
它会生成另一个对象)
如果我用 $element
和 $example
替换文件名,它会失败(需要一个文件)
我这样试过:
jq --argjson el "$element" --argjson ex "$example" '$el += $ex'
但它说 jq: invalid JSON text passed to --argjson
。我不明白。变量似乎是正确的 JSON.
我只想要这个输出,首先是“x”,使用变量而不是文件:
{
"x": "zero",
"a": "one",
"b": "two",
"c": "three",
}
它使用像这样的评论建议工作
element='{"x":"zero"}'
example='{
"a":"one",
"b":"two",
"c":"three"
}'
jq -n --argjson el "$element" --argjson ex "$example" '$el + $ex'
我想避免使用 JSON 文件并使用变量,但它不起作用
element='{"x": "zero"}'
example='{
"a": "one",
"b": "two",
"c": "three",
}'
jq -s '.[0] * .[1]' element.json example.json
如果 JSON 文件的内容与 vars 的单引号内的内容完全相同,它将按预期工作。但我也希望该元素是第一个元素(使用 *
它不会排在第一位,使用 +=
它会生成另一个对象)
如果我用 $element
和 $example
替换文件名,它会失败(需要一个文件)
我这样试过:
jq --argjson el "$element" --argjson ex "$example" '$el += $ex'
但它说 jq: invalid JSON text passed to --argjson
。我不明白。变量似乎是正确的 JSON.
我只想要这个输出,首先是“x”,使用变量而不是文件:
{
"x": "zero",
"a": "one",
"b": "two",
"c": "three",
}
它使用像这样的评论建议工作
element='{"x":"zero"}'
example='{
"a":"one",
"b":"two",
"c":"three"
}'
jq -n --argjson el "$element" --argjson ex "$example" '$el + $ex'