禁用 Newtonsoft 更改 JSON 大小写

Disable Newtonsoft changing JSON case

我有一个文档,其中有一个字段:

{
   FOB: "..."
}

然而当我return它时:

    [HttpGet("{documentRef}")]
    public ActionResult<Ten> Get(string documentRef)
    {
        var data = _service.FindOneTen(documentRef);
        if (data != null) return data;
        Response.StatusCode = 400;
        return NotFound();
    }

转换为:

{
    fob: "..."
}

我怎样才能阻止这种情况发生/为什么会发生这种情况?

我见过有人使用

的例子
PropertyNamingPolicy = null;

为 MVC/正常 JSON 禁用它,我试过了但没有用。

启动:

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddControllers().AddNewtonsoftJson();
    }

编辑

虽然 以一种方式解决了问题,但我宁愿不需要为模型中的每个字段指定。

如果您使用的是 .net 核心。您可以尝试使用默认的 .net 核心序列化程序,它应该保留原始外壳。

System.Text.Json.JsonSerializer.Serialize()

此外,您需要在 Startup.ConfigureServices()

中进行配置
services.AddMvc().AddJsonOptions(o => o.JsonSerializerOptions.PropertyNamingPolicy = null);

如果你需要使用Json.net然后使用这个

services.AddMvc().AddNewtonsoftJson(o =>
{
o.SerializerSettings.ContractResolver = new DefaultContractResolver();
});

使用这个

services.AddControllers().AddNewtonsoftJson(options=>
{
    options.SerializerSettings.ContractResolver = new DefaultContractResolver() {  };
});