我们正在将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
的一些引用。
是否可以将其配置为其他深度?
我还没有测试过,但是在Startup.cs中,您应该可以执行以下操作:
services.AddMvc().AddJsonOptions(options => {
options.SerializerSettings.MaxDepth = 64; // or however deep you need
});
您还可以直接在反序列化中设置所需的深度,如以下示例所示:
JsonConvert.DeserializeObject< T >(json, new JsonSerializerSettings
{
MaxDepth = //the value you need
});