使用jq将对象数组转换为具有命名键的对象
给定一个json文件,格式为:
[ {
name : "A",
value : "1"
},
{
name : "B",
value : "5"
},
{
name : "E",
value : "8"
}
]
我将如何使用jq将其转换为如下形式:
{ "A" : {
name : "A",
value : "1"
},
"B" : {
name : "B",
value : "5"
},
"E" : {
name : "E",
value : "8"
}
}
jq '{(.[].name) : "the name"}' 'myfile.json'
使用[]
.name键为我提供了一个对象,但是如何为该对象分配对象呢?
回答:
map( { (.name|tostring): . } ) | add
(这tostring
是出于安全性/鲁棒性。)
索引/ 1
如果您的jq INDEX/1
(在1.5版发布后引入),则可以简单地编写:
INDEX(.name)
以上是 使用jq将对象数组转换为具有命名键的对象 的全部内容, 来源链接: utcz.com/qa/405088.html