用 JQ 中另一个文件中的对象替换嵌套对象

问题描述 投票:0回答:1

我有一个具有以下结构的json文件

{
  "a":"aval",
  "b":{},
  "c":"cval"
}

我有另一个包含以下内容的 json 文件

{
  "b1":"b1val","b2":"b2val"
}

我想将文件 2 中的 json 对象推送到文件 1 中的“b”中

{
  "a":"aval",
  "b":{
      "b1":"b1val","b2":"b2val"
  },
  "c":"cval"
}

我如何使用 JQ 做到这一点

json jq
1个回答
5
投票

假设文件 #2 可能不为空,您可以简单地将

input
分配给
.b

jq '.b = input' file1 file2

在线演示

否则,当文件 #2 为空时,您将使用以下命令保留

.b
的原始值。

jq '.b = first(inputs, .b)' file1 file2
© www.soinside.com 2019 - 2024. All rights reserved.