我正在使用JSON.Net来序列化一组数据,这样理论上我就可以对项目进行外部处理。结构如下:
区域
POI
城镇: POI
等。
我最初使用JSON.Net序列化数据,只需调用JsonConvert.Serialise(myZoneArray)。这起作用,并给我一个适当的json字符串,我复制到文件。
然后,我反序列化了它,这也成功了。但是,当我在任何一个POI上调用return this.GetType()时,它们都返回基本POI类。因此,当我序列化和反序列化对象继承时,我认为它正在丢失。
对此是否有任何现有的解决办法?
发布于 2019-12-05 00:00:35
您可以通过为写入和读取步骤传入一个JsonSerializerSettings值来进行告诉Json.Net写入和读取类型信息:
static JsonSerializerSettings withTypes= new JsonSerializerSettings
{
TypeNameHandling = TypeNameHandling.All
};
var serialized = JsonConvert.SerializeObject(myZoneArray, withTypes);
Console.WriteLine(serialized);
var result= JsonConvert.DeserializeObject<Zone[]>(serialized,withTypes);https://stackoverflow.com/questions/59185866
复制相似问题