这应该很简单...我想重命名几个键(理想情况下使用JQ),尽管我所做的似乎都是错误的.下面是一个json示例:

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

我想将veg键重命名为FROUT2(或示例,任何最简单的方法),并将worker键重命名为job.

我意识到这在sed中是可能的,但我正在努力掌握jq

推荐答案

Use the following jq approach:

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

The output:

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

Json相关问答推荐

合并二维数组的Jolt表达式

在scala中将字符串列转换为 struct 的JSON映射

织女星-没有循环的动画条形图第二部分(实际上是织女星)

褐煤面积图中的分选问题

Jolt-Json转换:通过引用标识符(而不是索引)设置值

规范化JSON数据

Jolt:数组中两个字符串的连接

使用 jq 重新格式化 JSON 输出

在 python 中循环 JSON 数组

golang递归json来构造?

jq:来自嵌套 JSON 的映射

Flutter:在本地文件 json 中搜索特殊的阿拉伯字符

如何用 Xidel 正确读取这个 JSON 文件?

Golang / Go - 如果 struct 没有字段,如何将其编组为空?

如何在 jQuery 中循环遍历 JSON 数组?

了解 JSON Schema 草稿版本 4 中的additionalProperties关键字

将json字符反序列化为枚举

数据包含连续问号时无法理解的 jQuery $.ajax() 行为

嵌套 JSON:如何向对象添加(推送)新项目?

使用 axios 在 POST multipart/form-data 请求中发送文件和 json