2013-03-22 135 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