配置Json.Net以忽略通过JsonPropertyAttribute指定的属性名称

时间:2019-03-25 05:53:06

标签: c# json.net

我正在使用的第三方库中的类具有为一个类上的两个属性指定的相同JSON属性名称。例如。像这样:

    public class Foo
    {
        [JsonProperty("X")]
        public string X1 { get; set; }

        [JsonProperty("X")]
        public string X2 { get; set; }
    }

当我尝试将该类的实例序列化为JSON时,它将引发异常

var foo = new Foo { X1 = "a" };
var json = JsonConvert.SerializeObject(foo); // throws JsonSerializationException
  

JsonSerializationException:'名称为'X'的成员已经存在   在“ Foo”上使用JsonPropertyAttribute指定另一个名称。'

如何配置json序列化以忽略JsonPropery属性中指定的属性名称?

请注意,我无法控制Foo的定义,因此无法修改属性等。

我什至没有使用冲突的属性之一,但是当我在NullValueHandling.Ignore中指定JsonSerializerSettings时仍然会抛出异常。

0 个答案:

没有答案