我使用PowerShell 4发出一系列网络请求。从一个调用我得到一个通用数组 - 为了讨论它看起来像这样
$data = '[{"Id":"1","Name":"One"},{"Id":"2","Name":"Two"}]'
我正在尝试解析此数据以提取Name属性。但是,当我使用以下调用时,它会在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
任何人都可以帮我理解我在收藏管理方面做错了什么吗?我希望能够在一个声明中做到这一点。
答案 0 :(得分:0)
OP在评论中指出,似乎出于某些神秘原因需要使用括号。对我来说,加上括号也是解决方法。 我不确定为什么在没有parens的情况下会中断,但是我可以确认在Powershell内核中执行时没有parens的代码不是问题。