public class A{
public string Name = "A class";
}
public class B : A {
public string Memo = "B Class";
}
var b = new B();
JsonConvert.SerializeObject(b as A);
如上,如果一个B的实列,我想转成JSON串只包含A的属性,JsonConvert.SerializeObject()方法传入的是object类型,所以无论怎样转换还是会包含B的属性,但是又没有泛型相关的转换方法
有没有办法只把A的属性转换为JSON,不构造匿名类的情况下?
一个变通方法:先序列化b(B类型),然后反序列化为a(A类型),然后再进行序列化
class Program
{
static void Main(string[] args)
{
var b = new B();
var bJson = JsonConvert.SerializeObject(b);
var a = JsonConvert.DeserializeObject<A>(bJson);
var aJson = JsonConvert.SerializeObject(a);
Console.WriteLine(aJson);
}
}
public class A
{
public string Name = "A class";
}
public class B : A
{
public string Memo = "B Class";
}
哇。。。传说中的dudu
你就不能先把B复制到A里面去么?用AutoMapper
var a=b.MapTo<a>();
然后再序列化a就行了。