5

我想序列化这个类:

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 测试:

{名称:“名称价值”,品牌:“品牌价值”,年份:“年份价值”,图片:[“url1”,“url2”,“url3”] }

请注意,每辆 Car 都有一个仅包含 url 字符串的图片数组,而不是 Picture 类具有的所有属性。

我知道Json.NET有自定义解析器的概念,但我不确定如何使用它。

4

2 回答 2

10
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; }
}
于 2010-03-15T10:48:34.020 回答
0

创建一个将 PictureDisplay 对象作为字符串写入的 JsonConverter。

于 2010-02-24T01:11:44.987 回答