在Powershell中遍历JSON数据

阿米尔·萨尔(Amir Saar)

我有一个看起来像这样的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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章