我有一個包含鍵值對的哈希表陣列,如下所示:
$myTest = @{};
$test1 = @{
Name = "Food1"
Value = "Sandwich"
}
$test2 = @{
Name = "Food2"
Value = "Salad"
}
$myTest["Food1"] = $test1;
$myTest["Food2"] = $test2
在運行命令時
$myUpdatedTest = $myTest.Values | ConvertTo-Json -Compress
$myUpdatedTest在-->中給出值
[{"Value":"Sandwich","Name":"Food1"},{"Value":"Salad","Name":"Food2"}]
如果我只$test1添加了值,$myTest那么值將作為{"Value":"Sandwich","Name":"Food1"}
但在后一種情況下我希望值在里面[]-->[{"Value":"Sandwich","Name":"Food1"}]有沒有辦法實作這一點。
uj5u.com熱心網友回復:
問題在于您如何將物件發送到ConvertTo-Jsoncmdlet。
我設法通過改變來完成這項作業
$myUpdatedTest = $myTest.Values | ConvertTo-Json -Compress
至
$myUpdatedTest = ConvertTo-Json -Compress -InputObject $myTest.Values
然后,這將評估整個$myTest.Values物件,而不是一個一個地評估每個值。我希望這是有道理的?
uj5u.com熱心網友回復:
有點笨重,但這有效:
$myTest = @{};
$test1 = @{
Name = "Food1"
Value = "Sandwich"
}
$test2 = @{
Name = "Food2"
Value = "Salad"
}
$myTest["Food1"] = $test1;
$myTest["Food2"] = $test2
if($myTest){
if($myTest.Count -eq 1){
$myUpdatedTest = "[$($myTest.Values | ConvertTo-Json -Compress)]"
}else{
$myUpdatedTest = $myTest.Values | ConvertTo-Json -Compress
}
}
$myUpdatedTest
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/481245.html
