亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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

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

PHP
慕容森 2024-01-20 15:36:51
我們使用 ASP.NET Core 2.1 和 .NET Framework 4.6.2。我們有一位客戶需要將一個相當大的嵌套 json 結構發送到我們的 web 應用程序。當他們進行此調用時,我們將輸出以下日志并返回錯誤:已超出讀取器的 MaxDepth 32。路徑‘ super.long.path.to property ’,第 1 行,位置 42111?!盡axDepth = 32我瀏覽了 ASP.NET Core 代碼庫,并觀察到框架提供的反序列化器中的一些引用。是否可以將其配置為不同的深度?
查看完整描述

4 回答

?
陪伴而非守候

TA貢獻1757條經驗 獲得超8個贊

我還沒有測試過這一點,但在 Startup.cs 中你應該能夠執行如下操作:


services.AddMvc().AddJsonOptions(options => {

    options.SerializerSettings.MaxDepth = 64;  // or however deep you need

});


查看完整回答
反對 回復 2024-01-20
?
呼啦一陣風

TA貢獻1802條經驗 獲得超6個贊

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


JsonConvert.DeserializeObject< T >(json, new JsonSerializerSettings

{

    MaxDepth = //the value you need

});


查看完整回答
反對 回復 2024-01-20
?
浮云間

TA貢獻1829條經驗 獲得超4個贊

如果您使用的是 .NET Core 3.1,請在startup.cs 文件中嘗試此操作。確保安裝 Newtonsoft.Json 包。


services.AddMvc().AddNewtonsoftJson(options =>

{

    options.SerializerSettings.MaxDepth = 64;

});


查看完整回答
反對 回復 2024-01-20
?
喵喔喔

TA貢獻1735條經驗 獲得超5個贊

對于 .NET Core 5.0 System.Text.Json:


services.AddMvc().AddJsonOptions(options => 

{

    options.JsonSerializerOptions.MaxDepth = 64;

});


查看完整回答
反對 回復 2024-01-20
  • 4 回答
  • 0 關注
  • 224 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號