PowerShell中API返回列表Count统计含[]异常,求解决方法
解决PowerShell中JSON字符串Count统计错误的问题
你遇到的核心问题是:从API拿到的["a", "b"]其实是JSON格式的字符串,而非PowerShell原生数组,所以调用Count时统计的是这个字符串的字符总数,而非数组元素个数。
下面给你两种实用的解决方法:
方法1:手动将JSON字符串转为PowerShell数组
用PowerShell自带的ConvertFrom-Json命令,就能把JSON字符串直接转换成对应的PowerShell对象(这里就是字符串数组):
# 假设API返回内容存在$apiResponse变量中 $apiResponse = '["a", "b"]' # 转换为真正的数组 $properArray = $apiResponse | ConvertFrom-Json # 现在Count就是正确的2了 $properArray.Count
方法2:用API调用工具自动处理
如果是用Invoke-RestMethod调用API,它会自动把JSON响应转换成PowerShell对象,无需手动转换:
$response = Invoke-RestMethod -Uri "你的API接口地址" # 直接访问Count就能得到元素个数 $response.Count
要是用的是Invoke-WebRequest,则需要先提取响应内容再转换:
$webResult = Invoke-WebRequest -Uri "你的API接口地址" $properArray = $webResult.Content | ConvertFrom-Json $properArray.Count
额外验证技巧
不确定变量类型?可以用下面的命令快速确认:
$apiResponse.GetType().Name
如果输出是String,说明必须转换;如果是Object[],那本身就是数组,Count会正常统计元素数量。
内容的提问来源于stack exchange,提问作者Ramanujam Allam
相关产品推荐
相关产品推荐

