1
我試圖將自定義屬性添加到內置的PowerShell類型,然後將該對象轉換爲Json。我遇到的問題是ConvertTo-Json不會轉換我添加的自定義屬性。例如,ConvertTo-Json無法轉換添加到內置類型的自定義屬性
$Proc = Get-Process explorer
$Proc.Modules | %{
$_ | Add-Member NoteProperty MyCustomProperty "123456" -PassThru
}
$Proc.Modules[0].MyCustomProperty -eq "123456"
# Returns true
$Json = ConvertTo-Json ($Proc.Modules) -Depth 4
$Json -match "123456"
# Returns false. Expect it to be true
編輯:如果我使用「選擇*」與ConvertTo-Json,那麼它的工作原理。例如。
$Json = ConvertTo-Json ($Proc.Modules | select *) -Depth 4
$Json -match "123456"
# Returns true
任何人都可以解釋爲什麼發生這種情況?
PowerShell v2不包含'ConvertTo-Json' cmdlet。如果你使用一些自定義實現,那麼你應該指定哪一個。 – PetSerAl
固定。問題仍然發生在PS> = 3.0的所有版本上 – arwan
發生這種情況時,ConvertTo-Json只在看到「PSObject」時纔會查看自定義屬性。 – PetSerAl