接口类的序列化和反序列化

对接口类型的属性显式应用转换器

public class IOrderMerchs
{
    ......
}

public class OrderMerchs : IOrderMerchs
{
    ......
}


public class Order
{
    public string OrderId { get; set; }
    public string OrderSn { get; set; }

    // 显示指定转换器
    [JsonConverter(typeof(OrderMerchsJsonConverter<OrderMerchs>))]
    public List<IMerchs> MerchList { get; set; }
}

public class OrderMerchsJsonConverter<T> : JsonConverter
{
  public override bool CanConvert(Type objectType)
  {
    return true;
  }

  public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
  {
    return serializer.Deserialize<T>(reader);
  }

  public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
  {
      serializer.Serialize(writer, value);
  }
}

 

posted @ 2022-06-08 11:01  初壹  阅读(77)  评论(0)    收藏  举报