Ale*_*s G 3 merge json object jq
我有两个json文件,每个文件包含一个简单对象,例如:
文件1
{
"key1": "value1",
"key2": "value2"
}
Run Code Online (Sandbox Code Playgroud)
文件2
{
"key1": "valueA",
"key3": "valueB"
}
Run Code Online (Sandbox Code Playgroud)
我需要使用jq组合这两个,以便最终得到一个包含来自两个对象的所有键的对象.如果有公共密钥,我需要使用第二个对象的值.
我正在努力寻找合适的表达方式.我觉得这很简单
jq '. * .' file1 file2
Run Code Online (Sandbox Code Playgroud)
应该给我我想要的东西,但这导致非json输出:
{
"key1": "value1",
"key2": "value2"
}
{
"key1": "valueA",
"key3": "valueB"
}
Run Code Online (Sandbox Code Playgroud)
如果我使用,也会发生同样的事情jq '. + .' file1 file2.
我该如何组合这两个对象?
通过传入多个输入文件,每个文件的内容都会流入.您要么必须将它们插入或组合各个输入.
$ jq -s 'add' file1 file2
Run Code Online (Sandbox Code Playgroud)
要么
$ jq -n 'reduce inputs as $i ({}; . + $i)' file1 file2
Run Code Online (Sandbox Code Playgroud)
或者,如果您想合并而不是添加.
$ jq -n 'reduce inputs as $i ({}; . * $i)' file1 file2
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2512 次 |
| 最近记录: |