成功获取了JSON数据
$R= Invoke-WebRequest -Uri $url -Headers $headers -ContentType "application/json" -Method Get -UseBasicParsing
$x = $R.Content | Out-String | ConvertFrom-Json
现在我有一个这样的JSON文件:
{
"id": 1000,
"name_with_namespace": "myProjectName1",
},
{
"id": 1001,
"name_with_namespace": "myProjectName2",
},
{
"id": 1002,
"name_with_namespace": "myProjectName3",
}
现在我需要提取所有出现"name_with_namespace"
和"id"
的地方,其中"name_with_namespace" = "myProjectName.*"
如何一次完成呢?
我尝试过这个:
foreach ($name in $x.name_with_namespace) {
if ( $name -match ".*myProjectName.*" ) {
write-host "$name - $x.id"
}
}
但我得到了这个:
myProjectName1 1000 1001 1002
myProjectName2 1000 1001 1002
myProjectName3 1000 1001 1002
我理解问题在于 $x.id,如何获得正确的值而不是全部内容?
我的期望输出是:
myProjectName1 1000
myProjectName2 1001
myProjectName3 1002