Powershell如何将System.Collections.Generic.Dictionary转换为PSCustomObject?

时间:2014-12-07 00:03:49

标签: powershell

我有一个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)

3 个答案:

答案 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
}

如果有更快,更短或更好的方式,请随时回答