我确实有几个类似的JSON对象(例如在文件中):
file_1.json: {"myArray":[{a},{b}]}
...
file_n.json: {"myArray":[{n},{m}]}
我想使用jq和Linux或Windows命令行工具将所有这些文件转换为具有以下格式的一个输出:
result_file.json: [{a},{b},...,{n},{m}]
所以,我只想要一个数组,其中包含可以在不同输入的“myArray”数组中找到的所有对象。
目前我使用此命令分隔对象,但不创建包含它们的数组:
type file_1.json file_n.json | jq ".result[]" > result_file.json
(在Linux上用cat替换类型)
如何才能使格式正确?
答案 0 :(得分:4)
你可以“啜饮”你的输入:
-s读取(slurp)所有输入到数组中;对它应用过滤器;
(man jq)
就像那样:
1.json
{"myArray":[1,2,3]}
2.json
{"myArray":[3,4,5]}
%jq -s '[.[].myArray[]]' 1.json 2.json
[
1,
2,
3,
3,
4,
5
]