使用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

回到顶部