如何忽略重复字段?
例如我有这个原始 json{ "Value": 3, "Name": "Test", "value": "irrelevant" }
我想忽略值,因为我的目标类型有public int Value { get; set; }
我们在客户端视图的大多数数据上都存在这种问题。在 asp.net core 中,我们如何指示 json 序列化器使用与目标中的类型匹配的属性?
干杯,
如何忽略重复字段?
例如我有这个原始 json{ "Value": 3, "Name": "Test", "value": "irrelevant" }
我想忽略值,因为我的目标类型有public int Value { get; set; }
我们在客户端视图的大多数数据上都存在这种问题。在 asp.net core 中,我们如何指示 json 序列化器使用与目标中的类型匹配的属性?
干杯,
不幸的是,这是不可能的。
假设这个 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
值。