ConvertTo-JSON无法正确输出

时间:2013-03-22 12:08:43

标签: json powershell powershell-v3.0

我正在尝试使用Powershell中的ConvertTo-JSON方法来创建JSON结果,但我得到的输出是无效的JSON。我的输出样本是:

{
    "label":  "$stockShortName"
}
{
    "label":  "$stockShortName"
}

这就是我所期待的:

[
    {
        "label":  "$stockShortName"
    },
    {
        "label":  "$stockShortName"
    }
]

这是我正在使用的代码:

#Write each message where there is a stockshortname
foreach ($row in $DataSet.Tables[0].Rows){  
    $stockShortName = $row[0].ToString().Trim()
    (New-Object PSObject |
     Add-Member -PassThru NoteProperty label '$stockShortName' ) | ConvertTo-JSON
}

1 个答案:

答案 0 :(得分:1)

错误结果的原因是,您将单个对象传递给ConvertTo-Json而不是整个集合。如果你想使用foreach构造:

$(foreach ($row in $DataSet.Tables[0].Rows){  
    $stockShortName = $row[0].ToString().Trim()
    (New-Object PSObject |
     Add-Member -PassThru NoteProperty label '$stockShortName' ) 
}) | ConvertTo-JSON

请注意使用子表达式($(code)) - 否则foreach不会写入管道。