非常初学者的问题。我正在尝试使用 Powershell 从 JSON 获取某些值。具体来说,我想列出服务:测试00000 and FAKE only.
当我运行下面的脚本时,我得到:
TEST00000 FAKE
--------- ----
@{Enabled=True; Processed=2; Sent=3; Failed=4; Downloaded=5} @{Enabled=True}
如何获取仅包含服务的列表?
更重要的是,如何仅列出具有键/值的服务启用=真存在于他们内部?
这是代码:
$JSON = '{
"Envs": {
"DEV": {
"Services": {
"TEST00000": {
"Enabled": true,
"Processed": 2,
"Sent": 3,
"Failed": 4,
"Downloaded": 5
},
"FAKE": {
"Enabled": true
}
}
}
},
"Component": {
"Digger": {
"Envs": {
"DEV": {
"DownloadE": 4
}
}
}
}
}'
$jsonobj = ConvertFrom-Json -inputObject $JSON
$jsonobj.Envs.DEV.Services
获取每个人的名字Services
财产。您可以使用Get-Member
就像 user2734259 所做的那样,或者你可以使用psobject
属性存储有关对象的有用信息。
$ServiceNames = $jsonobj.Envs.DEV.Services.psobject.properties.name
获得名称后,您可以循环它们并过滤子属性Enabled
$jsonobj.Envs.DEV.Services.psobject.properties.name | ForEach-Object {
$_ | Where-Object {$jsonobj.Envs.DEV.Services.$_.Enabled -eq $True}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)