如何将同一JSON文件中存在的多个JSON数组合并到单个数组

时间:2019-03-20 22:07:57

标签: json bash jq

我从我运行的python脚本中获取以下示例。我想将所有数组合并为一个数组,如下面所需的输出所示。
示例:

[
  {
    "key": "65",
    "type": "Rug" 
  },
  {
    "key": "66",
    "type": "Rug" 
  }
][
  {
    "key": "52",
    "type": "A" 
  }
]

需要的食物:

[
  {
    "key": "65",
    "type": "Rug" 
  },
  {
    "key": "66",
    "type": "Rug" 
  },
  {
    "key": "52",
    "type": "A" 
  }

]

2 个答案:

答案 0 :(得分:3)

您的问题描述表明您只是想连接数组,这可以使用“ slurp”命令行选项轻松完成:

jq -s add

效率

如果效率是一个问题(可能是输入数组的数量很大),那么您可以利用输入的面向流性质:

jq -n 'reduce inputs as $in ([]; .+$in)'

答案 1 :(得分:0)

,这是基于 jtc unix实用程序的另一种实现方法:

bash $ <file.json jtc -Jw[:]
[
   {
      "key": "65",
      "type": "Rug"
   },
   {
      "key": "66",
      "type": "Rug"
   },
   {
      "key": "52",
      "type": "A"
   }
]
bash $