gpt4 book ai didi

powershell - 如何在powershell中解析json响应

转载 作者:行者123 更新时间:2023-12-03 00:23:10 24 4
gpt4 key购买 nike

设法获得了 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 上,我怎样才能获得正确的值(value)而不是一切?

我的预期输出是
myProjectName1 1000
myProjectName2 1001
myProjectName3 1002

最佳答案

当您定义循环时,您将级别钻得太深了。只需迭代 $x然后检查循环内的特定属性。

foreach ($name in $x) {
if ( $name.name_with_namespace -match ".*myProjectName.*" ) {
write-host "$($name.name_with_namespace) - $($name.id)"
}
}

编辑:另外,您可以简化您的 -match只是 "myProjectName"它也能正常工作,而且可能会更快。

关于powershell - 如何在powershell中解析json响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49136148/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com