我正苦于使用 jq 合并两个 JSON 数组,因为我想在合并后的对象中删除重复的键:
编辑:由于示例过于简单,因此添加了第二个键。
file1.json:
[
{"a": 1, "value": 11},
{"b": 2},
{"c": 3}
]
file2.json :
[
{"a": 4, "value": 44},
{"b": 5},
{"d": 6}
]
预期结果:
[
{"a": 4, "value": 44},
{"b": 5},
{"c": 3},
{"d": 6}
]
jq add file1.json file2.json
会重复键名(我有两个键名为“a”的对象在数组中)。
我尝试了许多网络上的答案,但每个人都有自己的用例,没有一个直接奏效。最接近的是这个:JQ - Merge two arrays,但我无法将其与文件参数一起使用。
我最后的尝试是:
jq \
--slurpfile base file1.json \
--slurpfile params file2.json \
'$base + $params | unique_by(.Key)'
{"a": 1, "t": 10}
,它就会在结果中创建一个带有该键的新对象:[{"a": 1}, {"t": 10}]
。 - JulienD