首页 > 解决方案 > 需要 kubectl jsonpath 参数来获取由字符串索引的数组条目

问题描述

我有一些脚本将“kubectl ... -o json”通过管道传输到“jq”。我一直在将其中的许多事件转换为使用“jsonpath”参数到 kubectl,这样我就可以跳过 jq 步骤。

由于标点符号问题,其中一组我无法转换。原始行看起来像这样:

kubectl ... -o json | jq -r '.data["application.properties"]'

在 json 中,有一个“数据”映射,其键的名称中可以有句点,所以我必须将它作为一个数组进行索引,名称作为键。使用 jq 可以正常工作。

this 到 jsonpath 的简单转换看起来像这样:

kubectl ... -o=jsonpath="{.data["application.properties"]}"

这失败了:

error: error parsing jsonpath {.data[application.properties]}, invalid array index application.properties

这似乎不是引用问题,因为它清楚地检测到我尝试的数组索引是什么,它只是不允许我使用它。

有没有办法完全用 jsonpath 做到这一点?

标签: kubectl

解决方案


诀窍是转换

{.data["application.properties"]}

至:

{.data.application\.properties}

(根据需要引用)


推荐阅读