c# – Json反序列化,具有相同的属性名称和不同的大小写

我想了解当我们有多个具有不同情况的属性名称时,Json.NET如何将
JSON对象反序列化为相应的c#对象(我知道这不是一个好习惯,但只是想知道JSON.NET如何处理这个).

我有一个c#对象定义如下:

public class TestModel
{
    public string Name { get; set; }
    public bool IsEmployee { get; set; }
}

和json对象一样

{ "Name": "TestName","Isemployee":true, "isemployee":false};

然后,如果我使用JSON.NET反序列化方法将上面的json字符串转换为TestModel对象,那么这两个属性中的哪一个将被分配给IsEmployee变量?为什么?

谢谢.

最佳答案 在反序列化中,如果完全匹配失败,Json.NET会尝试对属性进行不区分大小写的匹配,如
here所述.这与内置的.NET JSON序列化程序形成对比,请参阅
here.

如果检测到多个匹配,则最后一个匹配优先.

点赞