我正在使用JQ,但是在我的json标签中有"-"使得JQ无法编译.我不能逃脱它,让它发挥作用.这里的命令是

    curl -X GET -H "X-AppKey:foo" "foo/v2/_status" | jq '.component-status[]'

我在jq的github上读过这篇https://github.com/stedolan/jq/issues/202篇文章,但我无法让它发挥作用.

这是curl的输出

   {
  "status": "ok",
  "hostname": "0b0b495a46db",
  "component-status": [
   {
     "status-code": 200,
     "component": "Service1",
     "status": "OK"
   },
   {
     "status-code": 200,
     "component": "Service2",
     "status": "OK"
   }
  ]
 }

Any idea?

推荐答案

你需要用括号和双引号括起来:

jq '."component-status"'

根据给定的输入,它将返回:

[
  {
    "status": "OK",
    "component": "Service1",
    "status-code": 200
  },
  {
    "status": "OK",
    "component": "Service2",
    "status-code": 200
  }
]

The jq Manual (development) --> Basic filters:

.foo, .foo.bar

最简单有用的过滤器是.foo.当给定一个JSON对象(又名

如果密钥包含特殊字符,则需要用 像这样的双引号:."foo$".

From the github issue Cannot select field if field name has dashes:

Currently, that gets parsed as a subtraction. You can always explicitly use strings for when your keys don't fit identifier syntax.

Json相关问答推荐

如何形成正确的JQ表达式以从JSON文件中获得准确的输出数据?

如何在Vega中使标记的符号在鼠标指针悬停时可点击

合并2个嵌套词典

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

如何使用jq使用子值对象的键对json对象进行分组

Jolt - 如何比较 if else 条件的两个值

如何使用Powershell查找所有包含特定键值对的JSON对象并迭代所有对象?

匹配来自不同数组的值

使用 jq 从字符串列表开始创建对象

jq json - 按键名 Select

使用 KQL 和外部 data() 运算符从 json 文件中提取信息

从 PowerShell 编辑 Windows 终端配置文件设置 JSON

使用 ConvertFrom-Json 后,Powershell 访问 JSON 中的嵌套对象

使用 SwiftUI 在 API 调用中解码嵌套 JSON 响应时遇到问题

N1QL 聚合查询 Couchbase

如何使用 CORS 实现 JavaScript Google Places API 请求

在 Http Header 中使用 Json 字符串

ASP.NET MVC:使用 JsonResult 控制属性名称的序列化

如何使用 Newtonsoft.Json 包在 C#(4.0) 中解析我的 json 字符串?

如何将 mysqli 结果转换为 JSON?