如何使用PowerShell查找JSON中指定值的索引
PowerShell中查找JSON数组指定值的索引方法
目标JSON数据
需要处理的JSON结构如下:
{ "backendAddresses": [ { "ipAddress": "1.2.1.10" }, { "ipAddress": "1.2.1.9" } ] }
Bash + jq 的实现方式
在Bash环境中,借助jq可轻松实现查找指定IP在数组中的索引。假设JSON数据存储在变量$ip中:
echo $ip | jq '[.backendAddresses[].ipAddress] |index ("1.2.1.10")' # 输出:0 echo $ip | jq '[.backendAddresses[].ipAddress] |index ("1.2.1.9")' # 输出:1
PowerShell中的实现需求
请问在Windows系统的PowerShell中,实现相同功能的最简方法是什么?
尝试过的无效代码
我曾尝试以下代码,但未得到预期结果:
echo ($ip.backendAddresses |? {$_.ipAddress -eq "1.2.1.10"}).id
可行的PowerShell代码
经过尝试,以下代码可正常运行,返回目标IP对应的数组索引:
$obj = $ip | ConvertFrom-Json 0..($obj.backendAddresses.ipAddress.Count-1) | Where-Object {$obj.backendAddresses.ipAddress[$_] -eq '1.2.1.9'}
内容的提问来源于stack exchange,提问作者Oleg
相关产品推荐
相关产品推荐

