如何忽略重复字段?
例如,我有这个原始的json { "Value": 3, "Name": "Test", "value": "irrelevant" }
我想忽略值,因为我的目标类型有public int Value { get; set; }
我们对来自客户端视图的大多数数据都存在此类问题。在asp.net核心中,我们如何指示json序列化程序使用与目标中的类型匹配的属性?
干杯,
答案 0 :(得分:0)
不幸的是,这是不可能的。
假设这个JSON:
{
"Value": 3,
"Name": "Test",
"value": "irrelevant"
}
这节课:
public class MyClass
{
public string Value { get; set; }
public string Name { get; set; }
}
JSON.NET将反序列化如下:
Value = 3
Name = "Test"
Value = "irrelevant"
反序列化器没有“状态”,因此它不关心Value
之前是否已反序列化;它只是分配属性。
您收到错误的原因是您的班级将Value
定义为int
。这导致反序列化器执行:
Value = 3
Name = "Test"
Value = "irrelevant"
< ---抛出异常,因为int
无法设置为string
值。