json 使用jq,我如何用其他的东西替换一个键的名字

yrefmtwq  于 2023-02-20  发布在  其他
关注(0)|答案(2)|浏览(143)

这应该很简单...我想重命名一些键(最好用jq),但无论我做什么似乎都是错误的。下面是一个json示例:

[
 {
  "fruit": "strawberry",
  "veg": "apple",
  "worker": "gardener"
 }
]

我想把veg键重命名为fruit2(或者,随便什么都行),把worker键重命名为job。
我意识到这在sed中是可能的,但我试图理解jq

ycl3bljg

ycl3bljg1#

使用以下***jq***方法:

jq '[.[] | .["fruit2"] = .veg | .["job"] = .worker | del(.veg, .worker)]' file

输出:

[
  {
    "fruit": "strawberry",
    "fruit2": "apple",
    "job": "gardener"
  }
]
zc0qhyus

zc0qhyus2#

键(:-)是with_entries。例如,给定单个对象:

with_entries(if .key == "veg" then .key = "fruit2" else . end)

在您的示例中,由于您有一个对象数组,因此可以将上面的内容 Package 在map( ... )中。

相关问题