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

.NET 7 Minimal API中NewtonsoftJson的JsonProperty特性失效如何解决?

.NET 7 Minimal API 中使 Newtonsoft.Json 的 [JsonProperty] 特性生效的解决方案

你当前的问题核心是:配置的AddJsonOptions属于System.Text.Json的配置体系,和Newtonsoft.Json的[JsonProperty]特性不兼容,导致特性未生效。以下是具体解决步骤:

1. 安装Newtonsoft.Json集成包

首先需要安装ASP.NET Core与Newtonsoft.Json的官方集成包,通过NuGet或.NET CLI执行:

# NuGet包管理器命令
Install-Package Microsoft.AspNetCore.Mvc.NewtonsoftJson

# 或.NET CLI命令
dotnet add package Microsoft.AspNetCore.Mvc.NewtonsoftJson

2. 替换JSON配置逻辑

在Program.cs中,将原来针对System.Text.Json的AddJsonOptions替换为Newtonsoft.Json的配置入口AddNewtonsoftJson:

修改前的配置代码:

.AddJsonOptions(options =>
{
    options.JsonSerializerOptions.PropertyNamingPolicy = null;
});

修改后的配置代码:

builder.Services.AddControllers()
    .AddNewtonsoftJson(); // 切换为Newtonsoft.Json的配置体系

如果需要自定义Newtonsoft.Json的序列化规则,可在配置中添加自定义项:

builder.Services.AddControllers()
    .AddNewtonsoftJson(options =>
    {
        // 示例:自定义序列化规则,按需添加
        // options.SerializerSettings.ContractResolver = new DefaultContractResolver();
    });

3. 验证特性生效

完成配置后,你的FileNameRequest类中的[JsonProperty("some_name")]特性会正常生效,请求中传入some_name字段即可正确绑定到SomeName属性,原有端点代码无需修改。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 20:23:22