【问题标题】:How do I use the DataContractJsonSerializer Class properly with powershell?如何在 powershell 中正确使用 DataContractJsonSerializer 类?
【发布时间】:2012-01-14 04:59:28
【问题描述】:

我正在尝试在 powershell 2.0 中获取一个 json 字符串并将其转换为一个 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)

这不会产生任何错误或输出。如何进一步调试?

【问题讨论】:

    标签: .net json powershell powershell-2.0


    【解决方案1】:

    这不起作用,因为 PSObject 类型没有与 JSON 对象匹配的属性。

    一种选择是创建与数据匹配的 .NET 类型或结构以接受转换。

    第二种选择是convert the JSON to XML using this,然后使用 PowerShell 读取 XML。

    我能想到的第三个选项是使用this project直接转换为对象。

    [编辑]

    我也忘记了 Jaykul 整理的一个脚本:JSON 1.7

    【讨论】:

    • powershelljson 似乎无法处理嵌套哈希或顶级数组
    • 如何转换哈希?
    • 这些只是我能找到的选项。您必须选择最好的或自己编写。
    • Powershell 3.0 具有按预期工作的 Nativity,总有一天我会使用它,目前 Jaykul 的脚本是同类中最好的,它到处都是。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-02-13
    • 1970-01-01
    • 1970-01-01
    • 2021-09-10
    • 2018-01-05
    • 2021-12-11
    • 1970-01-01
    相关资源
    最近更新 更多