2013-03-22 134 views
1

我想在PowerShell中使用ConvertTo-JSON方法来创建JSON结果,但我得到的输出结果是无效的JSON。我输出的一个例子是:ConvertTo-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

原因错误的结果事实上,您将个人对象传递给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不会写管道。

+0

Bartek真棒回应!欢呼声 – steven 2013-03-22 12:19:28

+0

我在基于JSON的REST端点上使用'ConvertTo-Json',它返回一个数组。我看到的值是'{“value”:[...],“count”:5}',但我只想获取该值,我不想获取具有值和计数的对象。我该怎么做呢? – 2016-09-12 23:12:56