Tôi cókỳ quặc sử dụng newtonsoft json.net với PowerShell
function Foo($a, $b)
{
$o = @{}
$o.A = $a
$o.B = $b
$post = @{}
$post.X="x"
$post.entity =$o
$newton::SerializeObject($post)
}
sau đó làm
foo "a" "b"
tôi nhận được
Exception calling "SerializeObject" with "1" argument(s): "Self referencing loop detected for property 'Value' with type 'System.Management.Automation.PSParameterizedProperty'. Path 'entity.Members[0]'."
tuy nhiên
function Foo2($o)
{
$post = @{}
$post.X="x"
$post.entity =$o
$newton::SerializeObject($post)
}
foo2 @{a="a"; b="b"}
hoạt động tốt. Cũng
function foo3($a, $b)
{
$o = @{}
$o.A = $a
$o.B = $b
$newton::SerializeObject($o)
}
foo3 "a" "b"
công trình nhưng
foo3 "a" 1
không
Sau đó có thể được thực hiện để làm việc bằng cách làm
$o.B= [Int32]::Parse($b.Tostring())
Mà tất cả dường như rất kỳ quặc
PowerShell v2 trên cửa sổ s 7, json.net 4.4.5
Đó là một bộ thú quan sát, nhưng tôi không chắc chắn câu hỏi của bạn là gì Bạn đang cố gắng đạt được điều gì? –
Tôi khá chắc chắn rằng câu trả lời của tôi thực sự giải quyết vấn đề của bạn mà không yêu cầu thay đổi trong thư viện/v.v ... Nhưng tôi không thấy nhận xét nào về câu trả lời của tôi, cũng như phân bổ tiền thưởng cho câu trả lời của tôi. – Peter