首页 > 解决方案 > 如何解析 echo json 值?

问题描述

我想解析一个值或将一个值转换为 json 格式。

我不知道该怎么做。

echo -e $(kubectl get pods "test-pod" -o jsonpath="{range .status.containerStatuses[*]}{.state}"\\n"{end}")
map[running:map[startedAt:2019-06-07T00:51:34Z]]
map[running:map[startedAt:2019-06-07T00:51:40Z]]
map[running:map[startedAt:2019-06-07T00:51:44Z]]
map[waiting:map[message:Back-off 5m0s restarting failed container=con4 pod=test-pod_test(609c90e4-88be-11e9-ba5f-fa163e9a67be) reason:CrashLoopBackOff]]

我只想获取所有容器的状态,例如 [运行中、运行中、运行中、等待中]。

提前致谢。

标签: jsonshellkubernetes

解决方案


jq您可以使用 中的andkeys[]命令来实现它jq。以下将是要使用的命令:

kubectl get pods kube-dns-86f4d74b45-khd4z -n kube-system -o json | jq -r '.status.containerStatuses[].state | keys[]'

上面的命令将给出所有容器运行或等待或任何状态的以下输出


推荐阅读