使用jq将名称/值对的数组转换为具有命名键的对象 [英] Using jq, convert array of name/value pairs to object with named keys

查看:214
本文介绍了使用jq将名称/值对的数组转换为具有命名键的对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

以以下格式提供json文件:

Given a json file in the format as :

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

我如何使用jq将其转换为类似的内容?

How would I convert it to something like this using jq:

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

我确实使用jq 'map( { (.name): .value } )接近了,但是仍然将每个对象放在单独的括号中,而不是将它们放在一起.

I did come close using jq 'map( { (.name): .value } ) but that still leaves each object in its separate braces instead of having them all together.

推荐答案

使用您的方法,只需将add添加到过滤器中即可:

Using your approach, simply add add to your filter:

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

这篇关于使用jq将名称/值对的数组转换为具有命名键的对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆