首页 > 解决方案 > 解析Json数组以获取值

问题描述

我有一个嵌套的 JSON 文件:

{
    "SupportedVersions": [
        {
            "EKSVersion": "1.13",
            "ContainerVersions": [
                "0.0.62",
                "0.0.63",
                "0.0.73",
                "0.0.75",
                "0.0.77"
            ]
        },
        {
            "EKSVersion": "1.14",
            "ContainerVersions": [
                "0.0.62",
                "0.0.63",
                "0.0.66",
                "0.0.67",
                "0.0.68",
                "0.0.69",
                "0.0.70",
                "0.0.71",
                "0.0.72",
                "0.0.73",
                "0.0.74",
                "0.0.75",
                "0.0.79"
            ]
        }
    ]
}

我想从文件中获取容器版本的最新版本。我用了jq:

cat *.json | jq '.ContainerVersions[length + 1].ContainerVersions[-length]'

但不能从詹金斯使用它,所以需要其他解决方案。

标签: jsonparsingjenkinsjq

解决方案


假设您想获取SupportedVersions数组的最后一项及其ContainerVersions数组的最后一项,只需使用负索引即可。负索引将相对于数组的末尾而不是开头进行索引。

.SupportedVersions[-1].ContainerVersions[-1]

推荐阅读