我有一个看起来像这样的JSON文件:
$jsondata = '{
"ips": {
"10.20.30.40": [
{
"rhost": "DNS Name1.",
"rdata": [
"10.20.30.40"
],
"rrtype": "A (1)",
"ttl": 86400,
"geo": null,
"source": "DNSProvider1"
}
],
"40.50.60.70": [
{
"rhost": "DNS Name2.",
"rdata": [
"40.50.60.70"
],
"rrtype": "A (1)",
"ttl": 86400,
"geo": null,
"source": "DNSProvider1"
}
]
}
}'
我想获取列表中每个IP地址的所有TTL(例如)。
我将此JSON转换为Powershell PSCustomObject:
$obj = $jsondata | convertFrom-Json
现在我想获取所有TTL,我尝试获取IP列表(作为开始):
foreach ($ip in $a.ips) {write-host $ip }
结果我没有得到字符串,这就是为什么我(可能)无法进入并获得TTL的原因。
所以我的问题是:如何获取所有IP作为字符串?
我相信一旦得到答案,我就会理解如何遍历列表中的所有IP。
谢谢!
foreach($ip in $obj.ips | Get-Member -MemberType NoteProperty)
{
Write-Host -Verbose ("IP Address {0} has TTL {1}" -f $ip.Name, $obj.ips."$($ip.Name)".ttl)
}
Get-Member
将为您获取属性的名称(即IP地址),而不是值。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句