【发布时间】:2021-04-06 13:09:21
【问题描述】:
我有一个奇怪的问题,很困惑。 我有 3 节课:
public class ProductInfo
{
public List<PartInfo> PartInfos { get; set; }
public string Name { get; set; }
}
public class SubProductInfo : PartInfo
{
public ProductInfo ProductInfo { get; set; }
}
public class PartInfo
{
public string Name { get; set; }
public string Desc { get; set; }
}
我有一些工业产品的信息。每个产品都有一些部分和一些子产品。对于每个产品,我都有一个来自“ProductInfo”类型的对象。对于与该产品相关的每个部分,我都有一个“PartInfo”类型的对象,对于与该产品相关的每个子产品,我都有一个“SubProductInfo”类型的对象。此“ProductInfo”对象使用“JsonConvert.SerializeObject”方法序列化。 序列化信息示例:
{"PartInfos":[{"Name":"Part1","Desc":"Part1's Desc"},{"ProductInfo":{"PartInfos":[{"Name":"SubProduct1's Part1","Desc":"SubProduct1's Part1 desc"},{"Name":"SubProduct1's Part2","Desc":"SubProduct1's Part2 desc"}],"Name":"SubProduct1"},"Name":"SubProduct1 Details","Desc":"SubProduct1's Desc"}],"Name":"Product1"}
现在我想将这些 JSON 反序列化为原始对象。我用过:
JsonConvert.DeserializeObject<ProductInfo>(serializedObject)
但在反序列化中,“SubProductInfo”对象将反序列化为“PartInfo”对象。 如何将这些 JSON 反序列化为 完全 原始对象?
【问题讨论】:
-
请提供您要反序列化的JSON。
-
我真的不明白你想在这里做什么。 SubProductInfo 不应该是 ProductInfo 中的集合吗?
-
这就是人们避免继承的原因。
-
我编辑了问题。@HimBromBeere