【问题标题】:ConvertFrom-Json output doesn't work for Select-ObjectConvertFrom-Json 输出不适用于 Select-Object
【发布时间】:2017-03-01 23:28:43
【问题描述】:

我正在使用 PowerShell 4 发出一系列 Web 请求。通过一次调用,我得到了一个通用数组——为了讨论,它看起来像这样

$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

谁能帮助我了解我在收藏管理方面做错了什么?我希望能够在一份声明中做到这一点。

【问题讨论】:

  • ($data | ConvertFrom-Json) | Select-Object Name
  • 啊......荒谬......它与括号一起使用。想要将其发布为答案?

标签: json powershell


【解决方案1】:

正如 OP 在评论中指出的那样,似乎出于某种神秘的原因需要括号。添加括号也是我的解决方法。 我不确定为什么在没有括号的情况下会中断,但我可以确认在 powershell 核心中执行没有括号的代码不是问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-02
    • 2017-12-16
    • 2014-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-29
    相关资源
    最近更新 更多