【发布时间】:2020-02-19 07:08:55
【问题描述】:
好吧,我正在尝试序列化对象并将其保存为 JSON 格式,然后在 C# 中反序列化相同的对象。对象类如下:
public class NodeModel
{
public double X { get; set; }
public double Y { get; set; }
public int ParentNumber { get; set; }
public GeometryParams Geometry { get; set; }
public object Props { get; set; }
}
我不能使用具体的类而不是对象作为道具的类型,因为不同对象的类型不同。当我序列化对象时,我使用派生类型来填充 Props 属性。结果在 JSON 文件中结构良好。但是当我反序列化它时,它为 Props 属性返回 null 而其他属性反序列化成功。
【问题讨论】:
-
如果你不知道类型是什么,你希望用它做什么?
-
您可以使用自定义转换器并手动加载所有内容,但需要有某种方法来检测已通过属性名称序列化为 json 的类型。
-
当我序列化对象时 - 你使用的是什么序列化程序?您能否分享一个minimal reproducible example,展示您如何序列化和反序列化您的
NodeModel? -
您可以将
Props的类型更改为JObject -
它使用
JObject工作。谢谢@MartinStaufcik
标签: c# json object deserialization