我正在使用PowerShell 4发出一系列web请求。从一个调用中,我得到了一个泛型数组--为了便于讨论,它看起来像这样
$data = '[{"Id":"1","Name":"One"},{"Id":"2","Name":"Two"}]'我正在尝试解析这些数据以提取Name属性。但是,当我使用下面的调用时,它会写一行名称,但下面没有信息:
$data | ConvertFrom-Json | Select-Object Name但是,如果我将对象保存到一个中间对象,就像这样,它可以工作:
$o1 = $data | ConvertFrom-Json
$o1 | Select-Object Name我得到了正确的输出。
对象类型是不同的,但我不明白为什么。下面是相关Get-Member调用的输出:
$test | ConvrtFrom-Json | gm
TypeName: System.Object[]和
$o1 | gm
TypeName: System.Management.Automation.PSCustomObject有没有人能帮我理解我在收藏管理方面做错了什么?我希望能够在一条语句中做到这一点。
发布于 2020-07-22 06:43:42
正如OP在评论中指出的那样,似乎出于某种神秘的原因,括号是需要的。对我来说,添加括号也是解决问题的办法。我不确定为什么没有括号的代码会中断,但我可以确认没有括号的代码在powershell核心中执行时不是问题。
https://stackoverflow.com/questions/42544123
复制相似问题