ConvertFrom-Json输出不适用于Select-Object

时间:2017-03-01 23:28:43

标签: json powershell

我使用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

任何人都可以帮我理解我在收藏管理方面做错了什么吗?我希望能够在一个声明中做到这一点。

1 个答案:

答案 0 :(得分:0)

OP在评论中指出,似乎出于某些神秘原因需要使用括号。对我来说,加上括号也是解决方法。 我不确定为什么在没有parens的情况下会中断,但是我可以确认在Powershell内核中执行时没有parens的代码不是问题。

相关问题