gpt4 book ai didi

json - ConvertFrom-Json最大长度

转载 作者:行者123 更新时间:2023-12-03 13:28:01 28 4
gpt4 key购买 nike

在转换大小超过2MB的JSON字符串时,使用PowerShell v3时出现问题。 PowerShell使用的JSON序列化程序的默认限制设置为2MB,这说明了错误。

但是,当我在较小的集合上使用ConvertFrom-Json对对象进行反序列化时(我得到的数据对象的内部集合越来越小,但这些是相同的对象),它返回的对象非常好,具有我可以轻松访问的所有属性。

为了克服序列化程序的限制,我尝试手动反序列化数据:

$jsser = New-Object System.Web.Script.Serialization.JavaScriptSerializer
$jsser.MaxJsonLength = $jsser.MaxJsonLength * 10
$jsser.RecursionLimit = 99

$outObject = $jsser.DeserializeObject($json)

该对象看起来不同,似乎内部集合未反序列化,当我尝试执行属性时,它们返回空结果。

我的问题:
  • 假设是ConvertFrom-Json做了一些附加的魔术,或者在序列化之前以某种方式为对象创建了一个模板。知道如何复制吗?
  • 我得到的对象始终是PSCustomObject;如果我得到我想要通过ConvertFrom-Json设置的对象,是否仍然可以将其用作JsonSerializer中的对象类型?
  • 最佳答案

    我遇到了同样的问题,并且能够这样解决:

    [void][System.Reflection.Assembly]::LoadWithPartialName("System.Web.Extensions")        
    $jsonserial= New-Object -TypeName System.Web.Script.Serialization.JavaScriptSerializer
    $jsonserial.MaxJsonLength = 67108864
    $Obj = $jsonserial.DeserializeObject($CourseTypesResponse)

    您可以使用 $jsonserial.MaxJsonLength来操纵MaxJsonLength属性

    来源: https://social.technet.microsoft.com/Forums/windowsserver/en-US/833c99c1-d8eb-400d-bf58-38f7265b4b0e/error-when-converting-from-json?forum=winserverpowershell&prof=required

    关于json - ConvertFrom-Json最大长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16854057/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com