具有相同属性名称的Json反序列化具有不同的大小写

时间:2016-04-12 07:13:21

标签: c# json json.net deserialization

我想了解当我们有多个具有不同情况的属性名称时,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变量?为什么?

感谢。

1 个答案:

答案 0 :(得分:2)

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

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