1

如何忽略重复字段?

例如我有这个原始 json{ "Value": 3, "Name": "Test", "value": "irrelevant" }

我想忽略,因为我的目标类型有public int Value { get; set; }

我们在客户端视图的大多数数据上都存在这种问题。在 asp.net core 中,我们如何指示 json 序列化器使用与目标中的类型匹配的属性?

干杯,

4

1 回答 1

0

不幸的是,这是不可能的。

假设这个 JSON:

{ 
   "Value": 3, 
   "Name": "Test", 
   "value": "irrelevant" 
}

而这堂课:

public class MyClass
{
    public string Value { get; set; }  
    public string Name { get; set; }         
}

JSON.NET 将反序列化如下:

  1. Value = 3
  2. Name = "Test"
  3. Value = "irrelevant"

反序列化器没有“状态”,所以它不关心Value之前是否被反序列化;它只是简单地分配属性。

您收到错误的原因是您的类定义Valueint. 这导致解串器执行:

  1. Value = 3
  2. Name = "Test"
  3. Value = "irrelevant"<--- 抛出异常,因为int无法设置为string值。
于 2018-03-30T16:41:34.087 回答