1

我正在尝试使用 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
}
4

1 回答 1

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 不会写入管道。

于 2013-03-22T12:17:35.467 回答