我试图从包含相应字符串和继承自父对象的值的字符串数组反序列化对象列表。我有以下的JSON输出:
{
"sku":"1234-SKU",
"divisions":[
"Division 1",
"Division 2",
"Division 3",
"Division 4",
"Finals Division"
]
}
我有一个Compeititon
类和Division
类,精简如下:
public class Competition
{
[JsonProperty("sku")]
public string Sku;
[JsonProperty("divisions")]
public virtual List<Division> Divisions;
}
public class Division
{
// Sku from parent object
public string CompetitionSku;
// Would be value from "divisions" array
public string Name;
}
使用示例JSON输出,我将获得一个Sku为"1234-SKU"的Competition对象和一个包含5个division对象的列表,每个对象的Sku为"1234-SKU",Name值为"division 1"、"division 2",等等。
我最初创建了一个List<string>
供JSON序列化器填充,然后通过遍历列表创建Division对象。是否有一种方法可以正确地填充Division对象而不需要创建"运营商列表"?理想情况下,我认为我可以通过自定义JsonConverter
类做到这一点,但我不确定如何实现这一点。
我通过为Competition
类创建自定义JsonConverter
来获得它。我必须"手动"遍历它,但我可以通过这种方式访问整个对象。当我到达除数数组时,我将其反序列化为List<string>>
,然后遍历列表以创建Division
对象并插入已经解析的Competition.Sku
。