You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用jq正确解析指定JSON文件提取health字段?

jq提取vCenter服务健康状态字段方法

问题背景

现有存储vCenter服务列表的JSON文件,层级结构如下:

  • 最外层对象:key为value,对应值为服务列表数组
  • 数组中每个元素为单个服务对象:包含key(服务标识)和value(服务详情)两个字段
  • 服务详情中health字段即为要提取的健康状态值

错误尝试说明

你执行的命令报错核心原因为层级路径错误:

最外层是对象而非数组,直接使用.[]会先拿到最外层value对应的数组,后续再用.value索引数组就会触发Cannot index array with string "value"错误
以下是错误命令示例:

# 错误命令1
jq '.[].value.health' vm_services.json
# 错误命令2
jq '.[] | .value.health' vm_services.json

正确实现命令

提取所有服务的health值(无health字段的停止服务输出null)

jq '.value[] | .value.health' vm_services.json

仅输出存在健康状态的服务结果,过滤null值

jq '.value[] | .value.health | select(. != null)' vm_services.json

同时输出服务标识和健康状态,便于对应查看

jq '.value[] | {service: .key, health: .value.health} | select(.health != null)' vm_services.json

内容的提问来源于stack exchange,提问作者Tim Goodman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 23:45:00