使用JQ将对象的一个字段复制到另一个
Using JQ to copy one field of an object into another
在我的 JSON 中有一些带有 Description
属性 的对象。如何使用 JQ 将此值复制到同一对象的 GMNotes
属性?
换句话说,如何从
{
"ObjectStates": [
{
"Description": "",
"GMNotes": ""
},
{
"Description": "foo",
"GMNotes": ""
}
]
}
至
{
"ObjectStates": [
{
"Description": "",
"GMNotes": ""
},
{
"Description": "foo",
"GMNotes": "foo"
}
]
}
.ObjectStates[] | .GMNotes = .Description
仅returns修改对象,如图sandbox.
(我可以在 Perl 中轻松做到这一点。重点是使用 jq
。)
您可以将 map()
与 更新赋值 运算符结合使用 |=
:
jq '(.ObjectStates)|=map(.GMNotes=.Description)' file.json
https://jqplay.org/s/vFV_H4brlH
PS:除了使用map
你也可以使用下面的命令,关键是使用|=
.
jq '.ObjectStates[]|=(.GMNotes=.Description)' file.json
谢谢切普纳!
在我的 JSON 中有一些带有 Description
属性 的对象。如何使用 JQ 将此值复制到同一对象的 GMNotes
属性?
换句话说,如何从
{
"ObjectStates": [
{
"Description": "",
"GMNotes": ""
},
{
"Description": "foo",
"GMNotes": ""
}
]
}
至
{
"ObjectStates": [
{
"Description": "",
"GMNotes": ""
},
{
"Description": "foo",
"GMNotes": "foo"
}
]
}
.ObjectStates[] | .GMNotes = .Description
仅returns修改对象,如图sandbox.
(我可以在 Perl 中轻松做到这一点。重点是使用 jq
。)
您可以将 map()
与 更新赋值 运算符结合使用 |=
:
jq '(.ObjectStates)|=map(.GMNotes=.Description)' file.json
https://jqplay.org/s/vFV_H4brlH
PS:除了使用map
你也可以使用下面的命令,关键是使用|=
.
jq '.ObjectStates[]|=(.GMNotes=.Description)' file.json
谢谢切普纳!