powershell - 从 Powershell 中的 PSCustomObject 检索元素
问题描述
我是 Powershell 新手,目前正面临这个问题。
我在 Powershell 中调用了一个 REST API,它将 API 响应存储在 $GetResponse 变量中。特此一些显示语句:-
Write-Host $Getresponse.GetType()
输出:- System.Management.Automation.PSCustomObject
Write-Host $Getresponse.registered_models.name
输出:- 测试 test1
Write-Host $Getresponse | Get-Member -Force
输出:- @{registered_models=System.Object[]}
我想将 $Getresponse 的输出存储到一个数组变量中,但想不出办法。
解决方案
笔记:
Write-Host
通常是错误的工具,除非其意图是仅写入显示器,绕过成功输出流,并且能够将输出发送到其他命令,将其捕获到变量中,或将其重定向到文件。要输出一个值,请单独使用它;例如,$value
代替Write-Host $value
(或使用Write-Output $value
,尽管很少需要);看到这个答案。还要注意
Write-Host
,因为它使用简单.ToString()
的字符串化而不是 PowerShell 丰富的输出格式化系统,通常会产生对复杂对象无用的表示;要仅在仍然获得丰富的输出格式的同时输出到显示器,请改为通过管道传输到Out-Host
cmdlet。即使是丰富的默认输出格式也不足以用于深度嵌套,例如
Invoke-RestMethod
从 REST 服务接收的 JSON 响应(自动,由 )构造的对象图。为了快速可视化此类对象图的结构,您可以通过管道将它们转换回 JSONConvertTo-Json
- 确保指定一个足够-Depth
的 ,原因在这篇文章中解释。
根据您在评论中发布的格式化输出示例,您正在寻找.name
可以通过成员枚举获得的嵌套属性值。
[array] $names = $Getresponse.registered_models.name
推荐阅读
- react-native - 如何使图库的内容(包括视频和图像文件)在本机反应中可滚动?
- python - 结合numpy数组“元素方式”
- node.js - 等待异步方法的结果
- c# - 如何用字符串拆分计算行数
- c++ - 无法访问对象中的指针
- android-studio - getUsername & phone 返回空数据快照
- javascript - 如何在不使用 then 方法的情况下定义承诺链
- php - 从数据库中获取未定义的优惠券价值?
- c# - textCapSentences 不将输入文本大写
- angular - 从 Angular4 调用 Spring Rest 服务时的 CORS(跨源问题)