首页 / 问答 / ASP.NET Core应用程序中如何关掉JSON序列化时自动小写属性首字母的命名规则呢?

ASP.NET Core应用程序中如何关掉JSON序列化时自动小写属性首字母的命名规则呢?

.NET C# .NET Core ASP.NET Core JSON 4.04K 次浏览
0

在ASP.NET Core的应用程序开发中,通过Web API按钮器返回的JSON序列化时,无论实体对象的首字母是否是小写的,序列化后的JSON的属性的首字母默认都变成了小写。比如有如下的实体类:

public class Hat
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Color { get; set; }
    public int Count { get; set; }
}

默认返回的实体集合对应的序列化JSON字符串为:

[
 {"id":1,"name":"Bowler","color":"black","count":1},
 {"id":2,"name":"Fedora","color":"red","count":1},
 {"id":3,"name":"Baseball Cap","color":"blue","count":3}
]

现在需要关掉默认的首字母小写的JSON序列化规则,应该如何实现呢?即期望的JSON序列化字符串为:

[
 {"Id":1,"Name":"Bowler","Color":"black","Count":1},
 {"Id":2,"Name":"Fedora","Color":"red","Count":1},
 {"Id":3,"Name":"Baseball Cap","Color":"blue","Count":3}
]
回复 [×]
提交评论
请输入评论内容

3 个回答

  • 0

    在ASP.NET Core < 3.0的版本中,由于默认引用了Newtonsoft.Json来作为JSON序列化和反序列化的组件,所以,我们可以通过设置Newtonsoft.Json的相关命名规则来实现,在Startup.cs启动文件中配置,如下:

    Rector的个人主页

    Rector

    2020-05-11 回答

    • 0

      在ASP.NET Core 3.0+版本中,.NET Core默认去掉了对Newtonsoft.Json的依赖,而使用的是.NET内置的System.Text.Json这个JSON序列化命名空间,所以可以在Startup.cs文件中配置AddJsonOptions()选项,如下:

      Rector的个人主页

      Rector

      2020-05-11 回答

      • 0

        如果在ASP.NET Core 3.1+版本中,仍然需要使用Newtonsoft.Json,则首先请安装并引用Newtonsoft.Json组件,然后配置Startup.cs的配置如下:

        Rector的个人主页

        Rector

        2020-05-11 回答

        我来回答