aspnet核心json忽略重复的字段

时间:2018-03-30 14:49:37

标签: c# asp.net-core json.net json-serialization

如何忽略重复字段?

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

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

我们对来自客户端视图的大多数数据都存在此类问题。在asp.net核心中,我们如何指示json序列化程序使用与目标中的类型匹配的属性?

干杯,

1 个答案:

答案 0 :(得分: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"
  4. 反序列化器没有“状态”,因此它不关心Value之前是否已反序列化;它只是分配属性。

    您收到错误的原因是您的班级将Value定义为int。这导致反序列化器执行:

    1. Value = 3
    2. Name = "Test"
    3. Value = "irrelevant"< ---抛出异常,因为int无法设置为string值。