如何将 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'