我有多个具有相同结构的 JSON 文件,列表是数组。
$ jq 'keys' file_1.json
[
"itemsPerPage",
"links",
"list",
"startIndex"
]
Run Code Online (Sandbox Code Playgroud)
列表字段看起来像这样
文件1.json
"list" : [ {"id: 123, "fname":"SAM" }, {"id: 125, "fname":"JOE" } .....]
Run Code Online (Sandbox Code Playgroud)
文件X.json
"list" : [ {"id: 783, "fname":"Danny" }, {"id: 785, "fname":"Kingmo" } .....]
Run Code Online (Sandbox Code Playgroud)
尝试生成如下输出(仅列出并忽略作为 itemsPerPage/links/startIndex 的其他字段)
"list" : [ {"id: 123, "fname":"SAM" }, {"id: 125, "fname":"JOE" }, {"id: 783, "fname":"Danny" }, {"id: 785, "fname":"Kingmo" }]
Run Code Online (Sandbox Code Playgroud)
使用 jq 读取所有这些文件并生成一个包含来自所有 JSON 文件的所有对象的列表数组的单个文件的最佳方法是什么?
您可以使用inputs
函数将所有 JSON 文件的内容放在一起,并仅将.list
字段附加在一起
jq -n '{ list: [ inputs.list ] | add }' file1.json file2.json
Run Code Online (Sandbox Code Playgroud)