Json.NET - 如何使用自定义解析

问题描述:

我想序列这个类序列化类:Json.NET - 如何使用自定义解析

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”] }

注意,每个车有一个图片数组只有URL字符串,而不是所有的p图片类拥有的性能。

我知道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; } 
} 

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

+0

你能解释一下吗? – 2010-02-25 03:19:01