You need to enable JavaScript to run this app. 如何使用JSONPATH提取Kubernetes ConfigMap中的haproxy.cfg配置值
优惠活动
大模型
产品
解决方案
定价
更多

如何使用JSONPATH提取Kubernetes ConfigMap中的haproxy.cfg配置值

解决方案

方案1:调整引号嵌套(最推荐)

使用单引号包裹整个jsonpath表达式,内层用双引号标记包含特殊字符的键名,避免shell与jsonpath解析的引号冲突:

kubectl get cm -l app=haproxy -o jsonpath='{.items[0].data["haproxy.cfg"]}'

如果输出的换行符没有正确渲染,可以搭配echo -e处理转义字符:

echo -e "$(kubectl get cm -l app=haproxy -o jsonpath='{.items[0].data["haproxy.cfg"]}')"

如果你已经明确ConfigMap的名称为haproxy,可以直接指定资源名简化命令:

kubectl get cm haproxy -o jsonpath='{.data["haproxy.cfg"]}'

方案2:保留原有方括号写法

如果你习惯用方括号索引的写法,只需要转义内层的双引号即可:

kubectl get cm -l app=haproxy -o jsonpath="{['items'][0]['data'][\"haproxy.cfg\"]}"

失效原因说明

kubectl内置的jsonpath解析器要求,包含.、-等特殊字符的键名必须用双引号包裹才能被正确识别。你之前的写法使用单引号包裹haproxy.cfg,解析器无法将其识别为完整的键名,因此返回空结果。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 01:36:07