我怪胎使用newtonsoft json.net使用PowerShell
function Foo($a, $b)
{
$o = @{}
$o.A = $a
$o.B = $b
$post = @{}
$post.X="x"
$post.entity =$o
$newton::SerializeObject($post)
}
然后做
foo "a" "b"
我得到
Exception calling "SerializeObject" with "1" argument(s): "Self referencing loop detected for property 'Value' with type 'System.Management.Automation.PSParameterizedProperty'. Path 'entity.Members[0]'."
然而
function Foo2($o)
{
$post = @{}
$post.X="x"
$post.entity =$o
$newton::SerializeObject($post)
}
foo2 @{a="a"; b="b"}
工作正常。此外
function foo3($a, $b)
{
$o = @{}
$o.A = $a
$o.B = $b
$newton::SerializeObject($o)
}
foo3 "a" "b"
的作品,但
foo3 "a" 1
失败
后者可以做出这样做
$o.B= [Int32]::Parse($b.Tostring())
这一切似乎很奇怪
的PowerShell v2的上下班窗口s 7,json.net 4.4.5
这是一套有趣的观察,但我不知道你的问题是什么。你想达到什么目的? –
我非常肯定,我的答案实际上解决了您的问题,而不需要更改库/等等......但我没有看到我的答案,也没有看到我的答案中的赏金。 – Peter