首页 / 问答 / .NET Core/.NET 5应用程序开发中如何解决System.Text.Json对Json字符串反序列化时大小写敏感的问题?

.NET Core/.NET 5应用程序开发中如何解决System.Text.Json对Json字符串反序列化时大小写敏感的问题?

.NET C# .NET Core JSON .NET 5 2.17K 次浏览
0

.NET Core/.NET 5应用程序开发中,在微软发布.NET内置的JSON序列化(反序列化)类库System.Text.Json之前,绝大多数使用的是JSON.NET这款强大、开源的JSON序列化组件。
在使用JSON.NET对JSON字符串进行反序列化时,对JSON字符串的属性是大小写不敏感的,比如有如下实体:

MyOrder.cs

public class MyOrder
{
    public decimal Amount { get; set; }
}

对应的JSON字符串如下:

var json = "[{"amount":12.35},{"amount":6.39}]";

如果使用System.Text.Json默认的配置对json进行反序列化,将得不到反序列化的结果,这是为什么呢,又应该如何解决呢?

回复 [×]
提交评论
请输入评论内容

1 个回答

  • 0

    默认情况下,使用System.Text.Json类库对JSON字符串进行反序列化时遵循JSON和目标对象属性之间区分大小写的属性名匹配规则(JSON属性名大小写敏感),可以通过设置JsonSerializerOptions.PropertyNameCaseInsensitivetrue来忽略大小写敏感的问题,如下:

    System.Text.Json与Newtonsoft的测试示例如下:

    Rector的个人主页

    Rector

    2021-10-18 回答

    我来回答