多个JsonProperty名称分配给单个属性

我有两种想要反序列化为一个类的JSON格式。我知道我们不能将两个[JsonProperty]属性应用于一个属性。

您能否建议我实现这一目标的方法?

string json1 = @"

{

'field1': '123456789012345',

'specifications': {

'name1': 'HFE'

}

}";

string json2 = @"

{

'field1': '123456789012345',

'specifications': {

'name2': 'HFE'

}

}";

public class Specifications

{

[JsonProperty("name1")]

public string CodeModel { get; set; }

}

public class ClassToDeserialize

{

[JsonProperty("field1")]

public string Vin { get; set; }

[JsonProperty("specification")]

public Specifications Specifications { get; set; }

}

我希望name1并且name2两者都可以反序列化为name1规范类的属性。

回答:

一个不需要转换器的简单解决方案:只需向您的类添加第二个private属性,将其标记为[JsonProperty("name2")],然后将其设置为第一个属性:

public class Specifications

{

[JsonProperty("name1")]

public string CodeModel { get; set; }

[JsonProperty("name2")]

private string CodeModel2 { set { CodeModel = value; } }

}

小提琴:https :

//dotnetfiddle.net/z3KJj5

以上是 多个JsonProperty名称分配给单个属性 的全部内容, 来源链接: utcz.com/qa/432572.html

回到顶部