You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET 8.0中替代Microsoft.AspNetCore.Mvc.Json相关包的方案咨询

.NET 8.0 中 Json 格式化相关包的替代方案及报错解决

一、替代方案

1. 内置 System.Text.Json(替代 Microsoft.AspNetCore.Mvc.Formatters.Json)

  • .NET 8 里,Microsoft.AspNetCore.Mvc.Formatters.Json 的功能已经直接整合到 ASP.NET Core 框架里了,不用单独装 NuGet 包。
  • 直接用 System.Text.Json 命名空间就行,相关配置用 JsonOptions 完成,再也不用 MvcJsonOptions。

2. Newtonsoft.Json 支持(替代 Microsoft.AspNetCore.Mvc.NewtonsoftJson)

  • 如果还想用 Newtonsoft.Json(也就是 Json.NET),得装对应版本的 NuGet 包:Microsoft.AspNetCore.Mvc.NewtonsoftJson,选和 .NET 8 兼容的 8.x 系列版本就行。
  • 配置的时候用 NewtonsoftJsonOptions,别再用旧的 MvcJsonOptions。

二、「无法加载 MvcJsonOptions」报错解决

这个报错是因为从 .NET Core 3.0 开始,MvcJsonOptions 就被移除了,换成了下面两种类型:

  1. 用内置 System.Text.Json 时,用 JsonOptions 配置:
builder.Services.AddControllers()
    .AddJsonOptions(options =>
    {
        // 示例:配置小驼峰命名规则
        options.JsonSerializerOptions.PropertyNamingPolicy = JsonNamingPolicy.CamelCase;
    });
  1. 用 NewtonsoftJson 时,用 NewtonsoftJsonOptions 配置:
builder.Services.AddControllers()
    .AddNewtonsoftJson(options =>
    {
        // 示例:配置小驼峰命名规则
        options.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
    });

三、注意事项

  • 把项目里已经装的 Microsoft.AspNetCore.Mvc.Formatters.Json 包引用删掉,避免版本冲突。
  • 检查代码里所有用到 MvcJsonOptions 的地方,全部换成上面说的新类型。

内容的提问来源于stack exchange,提问作者Sibin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 16:39:51