代码之家  ›  专栏  ›  技术社区  ›  Josip Medved

使用jq,将名称/值对数组转换为具有命名键的对象

  •  0
  • Josip Medved  · 技术社区  · 6 年前

    [
      {
        "name" : "A",
        "value" : "4"
      },
      {
        "name" : "B",
        "value" : "2"
      },
      {
        "name" : "C",
        "value" : {
          "X": "Something",
          "Y": "Else"
        }
      }
    ]
    

    我如何使用jq将其转换为这样的内容:

    {
      "A": "4",
      "B": "2",
      "C": {
        "X": "Something",
        "Y": "Else"
      }
    }
    

    jq 'map( { (.name): .value } ) 但这仍然会将每个对象放在单独的大括号中,而不是放在一起。

    1 回复  |  直到 6 年前
        1
  •  4
  •   peak    6 年前

    使用您的方法,只需添加 add 到您的筛选器:

    map( { (.name): .value } ) | add