使用jq创建一个新对象,其中同级属性被移动为子属性的方法如下:
首先,我们需要使用jq的map()
函数来遍历给定的对象数组。然后,我们可以使用{}
来创建一个新的对象,并在其中使用+
运算符来合并原始对象的属性和新的子属性。
下面是具体的步骤:
map()
函数来遍历给定的对象数组。假设给定的对象数组是data
,可以使用以下命令来实现:jq 'map(.propertyName) as $newProperty | map(. + {newProperty: $newProperty})'
这里,.propertyName
是你要移动为子属性的属性名,newProperty
是你想要给新的子属性起的名字。
.propertyName
替换为你实际要移动为子属性的属性名。newProperty
替换为你想要给新的子属性起的名字。下面是一个示例:
假设我们有以下的对象数组:
[
{
"name": "Alice",
"age": 25
},
{
"name": "Bob",
"age": 30
}
]
我们想要将name
属性移动为子属性info
,可以使用以下命令:
jq 'map(.name) as $newProperty | map(. + {info: $newProperty})'
运行上述命令后,将会得到以下结果:
[
{
"age": 25,
"info": "Alice"
},
{
"age": 30,
"info": "Bob"
}
]
这样,我们就成功地创建了一个新的对象,其中同级属性name
被移动为子属性info
。
领取专属 10元无门槛券
手把手带您无忧上云