对于像这样的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变量中时,我可以访问'锦标赛'特定的游览'像这样:
$data.Tours[0].Tournaments
$data.Tours[1].Tournaments
但是,是否可以访问'锦标赛'属性和值通过指定' Code'或者'姓名'在' Tours'?下的价值观这样的事情,也许:
$data.Tours.Code['r'].Tournaments
实际上,在PS脚本中,我想通过' Code'过滤数据。在' Tours'并获得基础'锦标赛' (参加'锦标赛'特定'代码'''')。
答案 0 :(得分: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 }}