如何在我的ASP.NET Core Web应用程序中增加JSON反序列化MaxDepth限制

问题描述 投票:0回答:2

我们正在将ASP.NET Core 2.1与.NET Framework 4.6.2一起使用。

我们有一个客户需要向我们的Web应用程序发送一个很大程度上嵌套的json结构。

[当他们打电话时,我们输出以下日志并返回错误:

读取器的MaxDepth已超过32。路径'super.long.path.to属性',第1行,位置42111。“

我浏览了ASP.NET Core代码库,并在框架随附的反序列化器中观察到对MaxDepth = 32的一些引用。

是否可以将其配置为其他深度?

c# asp.net-core json.net asp.net-core-2.1
2个回答
0
投票

我还没有测试过,但是在Startup.cs中,您应该可以执行以下操作:

services.AddMvc().AddJsonOptions(options => {
    options.SerializerSettings.MaxDepth = 64;  // or however deep you need
});

0
投票

您还可以直接在反序列化中设置所需的深度,如以下示例所示:

JsonConvert.DeserializeObject< T >(json, new JsonSerializerSettings
{
    MaxDepth = //the value you need
});
© www.soinside.com 2019 - 2024. All rights reserved.