0

对于这样的 JSON:

{
"Tours": [{
    "Code": "r",
    "Name": "Tour 1",
    "Tournaments": [{
        "Number": "464",
        "Title": "Open Tournament 1"
    },
    {
        "Number": "047",
        "Title": "Open Tournament 2"
    }]
},
{
    "Code": "s",
    "Name": "Tour 2",
    "Tournaments": [{
        "Number": "524",
        "Title": "Tournament 3"
    },
    {
        "Number": "009",
        "Title": "Tournament 4"
    }]
}]
}

当转换为 PS 自定义对象并保存在 $data 变量中时,我可以访问 'Tournaments' 下的特定'Tours' 的值,如下所示:

$data.Tours[0].Tournaments
$data.Tours[1].Tournaments

但是,是否可以通过在“Tours”下指定“Code”或“Name”值来访问“Tournaments”属性和值?类似的东西,也许:

$data.Tours.Code['r'].Tournaments

实际上,在 PS 脚本中,我想通过“Tours”下的“代码”过滤数据并获取基础“锦标赛”(获取“锦标赛”以获得“旅游”的特定“代码”)。

4

1 回答 1

1

您需要执行以下操作:

$data.Tours | Where-Object { $_.Code -eq 'r' } | Select-Object -ExpandProperty 'Tournaments'

要获取串联代码和锦标赛号码的列表(其中代码为“r”),您可以执行以下操作:

$data.Tours | Where-Object { $_.Code -eq 'r' } | ForEach-Object { $Code = $_.Code; $_.Tournaments | ForEach-Object { $Code + $_.Number }}
于 2016-06-20T17:55:49.400 回答