You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell读取JSON数据时报Get-Member无对象错误如何解决

报错原因
  • 核心错误来自Write-Host的特性:Write-Host仅会将输入内容转换为纯字符串输出到控制台,不会将原对象传递到管道下游。你控制台输出的第一行@{odata.metadata=http://myApp/View/odata/$metadata#PeopleDepartmentOData; value=System.Object[]}就是Write-Host将对象转成格式化字符串打印的结果,打印完之后没有任何对象流入后续的Get-Member,因此Get-Member接收不到任何输入对象,触发报错。
  • 额外补充:你解析后得到的$thePeople是包含两个顶层属性的结构体,实际人员列表数据存储在value属性对应的数组中,后续遍历操作也需要访问该属性才能拿到目标数据。
解决方法
  1. 如果你要查看$thePeople的对象结构,直接删除Write-Host即可:
# 查看顶层对象的成员
$thePeople | Get-Member

# 查看人员列表的成员结构
$thePeople.value | Get-Member
  1. 遍历人员数据的示例代码:
foreach ($person in $thePeople.value) {
    Write-Host "$($person.FirstName) $($person.LastName) 职位:$($person.JobTitle) 部门:$($person.Department)"
}

补充说明

PowerShell中Write-Host的定位就是仅做控制台展示用,不会参与管道数据传递。如果需要既输出内容到控制台又保留对象传递能力,可以使用Write-Output,或者直接省略输出命令——PowerShell默认会将未被捕获的变量值输出到管道。

内容的提问来源于stack exchange,提问作者Pete Whelan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 13:15:03