我在powershell 2.0中编写脚本,目前无法升级到3.0或更高版本.在这个脚本中,我尝试使用此链接中的代码将一些数据序列化为JSON(PowerShell 2.0 ConvertFrom-Json和ConvertTo-Json实现):
function ConvertTo-Json20([object] $item){
add-type -assembly system.web.extensions
$ps_js=new-object system.web.script.serialization.javascriptSerializer
return $ps_js.Serialize($item)
}
Run Code Online (Sandbox Code Playgroud)
我的问题是我以某种方式获得循环引用,我真的不知道为什么.我设置了一小段测试数据,结构在powershell中看起来像这样:
$testRoot = @{
"id" = "1"
"children" = @(
@{
"id" = "2"
"children" = @(
@{
"id" = "2";
};
@{
"id" = "3";
}
);
};
@{
"id" = "4"
"children" = @(
@{
"id" = "5";
}
);
}
)
}
Run Code Online (Sandbox Code Playgroud)
我知道它看起来很垃圾,但我只需要这种格式.
我需要序列化的结构有更多的层,所以更多的"孩子",并有它变得奇怪的点.
当我尝试这个:
ConvertTo-Json20 $testRoot
Run Code Online (Sandbox Code Playgroud)
一切正常.结构被解析如下:
{
"id":"1",
"children":[
{
"id":"2",
"children":[
{
"id":"2"
},
{
"id":"3"
} …Run Code Online (Sandbox Code Playgroud)