PowerShell-通过JSON进行迭代



我看了很多例子,但我的代码无法正常工作。这个JSON的结构似乎与我见过的任何其他JSON都不同。我需要迭代这些结果;id";以及";legalName";。

[
"URL: https://myurl.com/rest/api",
{
"value":  [
{
"id":  271,
"client":  "@{id=245; clientCode=; clientName=}",
"dbaName":  null,
"federalEIN":  "",
"legalCode":  "01",
"legalName":  "Test1",
"naicsCode":  null,
"status":  "Active",
"links":  "    "
},
{
"id":  272,
"client":  "@{id=245; clientCode=; clientName=}",
"dbaName":  null,
"federalEIN":  "",
"legalCode":  "02",
"legalName":  "Test2",
"naicsCode":  null,
"status":  "Terminated",
"links":  "    "
}
],
"Count":  6
}
]

我尝试了很多不同的代码示例,但都没有成功。这不会返回任何结果。我似乎无法找到我需要的房产。

$var = Get-RestData("https://myurl.com/rest/api/") | ConvertTo-Json
$var["value"] | select id

您可以使用ConvertFrom-Jsoncmdlet将JSON格式的字符串转换为PSCustomObject,您可以使用它进行迭代。

$json = @"
[
"URL: https://myurl.com/rest/api",
{
"value":  [
{
"id":  271,
"client":  "@{id=245; clientCode=; clientName=}",
"dbaName":  null,
"federalEIN":  "",
"legalCode":  "01",
"legalName":  "Test1",
"naicsCode":  null,
"status":  "Active",
"links":  "    "
},
{
"id":  272,
"client":  "@{id=245; clientCode=; clientName=}",
"dbaName":  null,
"federalEIN":  "",
"legalCode":  "02",
"legalName":  "Test2",
"naicsCode":  null,
"status":  "Terminated",
"links":  "    "
}
],
"Count":  6
}
]
"@
$json | ConvertFrom-Json | ForEach-Object { $_.value } | Select id, legalName

返回:

id legalName
-- ---------
271 Test1
272 Test2

最新更新