我想了解当我们有多个具有不同情况的属性名称时,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.
如果检测到多个匹配,则最后一个匹配优先.