这应该很简单...我想重命名一些键(最好用jq),但无论我做什么似乎都是错误的。下面是一个json示例:
[ { "fruit": "strawberry", "veg": "apple", "worker": "gardener" } ]
我想把veg键重命名为fruit2(或者,随便什么都行),把worker键重命名为job。我意识到这在sed中是可能的,但我试图理解jq
ycl3bljg1#
使用以下***jq***方法:
jq '[.[] | .["fruit2"] = .veg | .["job"] = .worker | del(.veg, .worker)]' file
输出:
[ { "fruit": "strawberry", "fruit2": "apple", "job": "gardener" } ]
zc0qhyus2#
键(:-)是with_entries。例如,给定单个对象:
with_entries(if .key == "veg" then .key = "fruit2" else . end)
在您的示例中,由于您有一个对象数组,因此可以将上面的内容 Package 在map( ... )中。
map( ... )
2条答案
按热度按时间ycl3bljg1#
使用以下***jq***方法:
输出:
zc0qhyus2#
键(:-)是with_entries。例如,给定单个对象:
在您的示例中,由于您有一个对象数组,因此可以将上面的内容 Package 在
map( ... )
中。