json - 使用 jq 从 json 文件中获取键值对

标签 json jq

我正在尝试使用 jq 获取下面的 key@value 对 JSON 文件

{
  "STUFF_RELATED1": "STUFF_RELATED1",
  "STUFF_RELATED2": "STUFF_RELATED2",
  "THINGS": {
    "THING_2": {
      "details": {
        "stuff_branch": "user/dev"
      },
      "repository": "path/to/repo",
      "branch": "master",
      "revision": "dsfkes4s34jlis4jsj4lis4sli3"
    },
    "THING_1": {
      "details": {
        "stuff_branch": "master"
      },
      "repository": "path/to/repo",
      "branch": "master",
      "revision": "dsfkes4s34jlis4jsj4lis4sli3"
    }
  },
  "STUFF": {
    "revision": "4u324i324iy32g",
    "branch": "master"
  }
}

key@value 对应该如下所示:

THING_1@dsfkes4s34jlis4jsj4lis4sli3

目前我已经自己尝试过:

jq -r ' .THINGS | keys[] as $k | "($k)@(.[$k].revision)" ' things.json

但它并没有给出我真正想要的结果。:( 提前致谢!

最佳答案

你需要转义 ( :

jq -r ' .THINGS | keys[] as $k | "\($k)@\(.[$k].revision)" ' things.json

关于json - 使用 jq 从 json 文件中获取键值对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69852741/

相关文章:

syntax - jq,何时使用点,何时不使用

java - Java中对象在内存中的字段和值遍历

android - JSONArray 无法转换为 JSONObject Android

linux - 使用 shell 遍历 json

amazon-web-services - 使用 JQ 生成 AWS CloudFormation 参数文件

json - 如何使用 jq 对输出进行排序/唯一

json - 如何获取服务器从reqwest http调用发送回的数据?

ios - 无法将类型 'SwiftyJSON.JSON' 的值转换为 'Swift.String'

android - 如何使用 Retrofit 和 Gson 解析嵌套列表?

json - 从json数据制作表格时出现jq "object cannot be tsv-formatted, only array"错误