Как правильно использовать класс DataContractJsonSerializer с powershell? - PullRequest
3 голосов
/ 06 декабря 2011

Я пытаюсь взять строку json в powershell 2.0 и преобразовать ее в объект powershell.

$json = '{"test":"data","numerical":4,"nested":{"nested":true}}'
$ms = New-object IO.MemoryStream (,$utf8.GetBytes($json))
[type] $type = 'psobject'
$js = New-Object System.Runtime.Serialization.Json.DataContractJsonSerializer $type
write-host $js.ReadObject($ms)

Это ничего не дает, никаких ошибок или вывода. Как я могу отладить это дальше?

1 Ответ

4 голосов
/ 07 декабря 2011

Это не будет работать, поскольку тип PSObject не имеет свойств, соответствующих объекту JSON.

Один из вариантов - создать тип или структуру .NET, соответствующие данным, чтобы принять преобразование.

Второй вариант заключается в преобразовании JSON в XML с использованием этого и последующем чтении XML с помощью PowerShell.

Третий вариант, который я могу придумать, - это преобразование непосредственно в объект с использованием этот проект .

[Редактировать]

Я также забыл о сценарии, который Jaykul составил: JSON 1.7

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...