使用jq将名称/值对的数组转换为具有命名键的对象 [英] Using jq, convert array of name/value pairs to object with named keys
本文介绍了使用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屋!
查看全文