使用jq减少JSON

tur*_*tle 4 unix jq

我有一个JSON数组的对象:

[{key1: value},{key2:value}, ...]
Run Code Online (Sandbox Code Playgroud)

我想将这些减少到以下结构:

{key1: value, key2: value, ...} 
Run Code Online (Sandbox Code Playgroud)

这可能与jq有关吗?

我在努力:

cat myjson.json | jq '.[] | {(.key): value}'
Run Code Online (Sandbox Code Playgroud)

这不是很有效,因为它迭代每个数据而不是将其减少到一个对象.

小智 6

请注意,jq有一个名为'add'的内置函数,与第一个答案建议的相同,所以你应该能够写:

jq add myjson.json
Run Code Online (Sandbox Code Playgroud)


小智 0

我相信以下方法会起作用:

cat myjson.json | jq 'reduce .[] as $item ({}; . + $item)'
Run Code Online (Sandbox Code Playgroud)

它获取数组中的每个项目,并将其添加到所有先前项目的总和中。