我有一个System.Collections.Generic.Dictionary,我是通过运行下面的代码片段获得的。如何将$ Obj转换为PSCustomObject?
[void][System.Reflection.Assembly]::LoadWithPartialName("System.Web.Extensions")
$jsonserial= New-Object -TypeName System.Web.Script.Serialization.JavaScriptSerializer
$jsonserial.MaxJsonLength = 67108864
$Obj = $jsonserial.DeserializeObject($JsonString)
答案 0 :(得分:3)
New-Object
应该从PS 2.0开始工作:
$custom = new-object PSCustomObject -Property $obj
答案 1 :(得分:2)
这似乎有效:
$ht = @{}
$ht += $obj
[PSCustomObject]$ht
编辑:
V3解决方案:
$ht = [collections.hashtable]$obj
[PSCustomObject]$ht
答案 2 :(得分:0)
我最后在问题的最后一行之后使用了以下内容
$Obj | ForEach-Object {
$props = @{}
$_.GetEnumerator() | ForEach-Object {
$props[$_.Key] = $_.Value
}
[PSCustomObject]$props
}
如果有更快,更短或更好的方式,请随时回答