这应该很容易......我想重命名一些键(理想情况下用jq),不管我做什么似乎都是错误的。这是下面的json示例:
[
{
"fruit": "strawberry",
"veg": "apple",
"worker": "gardener"
}
]
我想将veg键重命名为fruit2(或者示例,无论什么是最简单的)以及作业的工作键。
我意识到这在sed中是可能的,但我正试图掌握jq
使用以下jq方法:
jq '[.[] | .["fruit2"] = .veg | .["job"] = .worker | del(.veg, .worker)]' file
输出:
[
{
"fruit": "strawberry",
"fruit2": "apple",
"job": "gardener"
}
]
密钥(:-)是with_entries。例如,给定一个对象:
with_entries(if .key == "veg" then .key = "fruit2" else . end)
在您的情况下,由于您有一个对象数组,您可以将上面的内容包装在map( ... )
中。