JQ向嵌套数组中的嵌套对象添加属性

ras*_*cio 5 json jq

我有以下 json:

{
  "first": {
    "second" : "A"
  },
  "array": [
    {
      "name" : "AAA",
      "something": {
        "hola": "hi"
      }
    },
    {
      "name" : "BBB",
      "something": {
        "hola": "hi"
      }
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

我想对其进行转换,使用父级属性的something值向对象添加属性,例如:name

我有以下 json:

{
  "first": {
    "second" : "A"
  },
  "array": [
    {
      "name" : "AAA",
      "something": {
        "hola": "hi",
        "NEW_PROPERTY": "AAA"
      }
    },
    {
      "name" : "BBB",
      "something": {
        "hola": "hi",
        "NEW_PROPERTY": "BBB"
      }
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

哪个 jq 表达式可以做到这一点?

oli*_*liv 5

试试这个 jq 脚本:

<file jq '.array = [ .array[] | .something.NEW_PROPERTY = .name ]'
Run Code Online (Sandbox Code Playgroud)

这是将 替换array为与原始密钥相同的另一密钥,并且多了一个密钥NEW_PROPERTY