我想序列化这个类:
public class CarDisplay
{
public string Name { get; set; }
public string Brand { get; set; }
public string Year { get; set; }
public PictureDisplay[] Pictures { get; set; }
}
public class PictureDisplay
{
public int Id { get; set; }
public string SecretKey { get; set; }
public string AltText { get; set; }
}
对于这个 Json 测试:
{ 名称:“名称值”, 品牌:“品牌值(value)”, 年份:“年份值”, 图片:[“url1”,“url2”,“url3”] }
请注意,每个 Car 都有一个仅包含 url 字符串的图片数组,而不是 Picture 类具有的所有属性。
我知道Json.NET有自定义解析器的概念,但我不确定如何使用它。
最佳答案
public class PictureDisplayConverter : JsonConverter
{
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
// convert array of picture to json string;
}
public override object ReadJson(JsonReader reader, Type objectType, JsonSerializer serializer)
{
// convert back json string into array of picture
}
public override bool CanConvert(Type objectType)
{
return true;
}
}
在您的汽车展示类中:
public class CarDisplay
{
public string Name { get; set; }
public string Brand { get; set; }
public string Year { get; set; }
[JsonConverter(typeof(PictureDisplayConverter ))]
public PictureDisplay[] Pictures { get; set; }
}
关于.net - Json.NET - 如何使用自定义解析器序列化类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2315570/