用json.net序列化派生对象



Dictionary<DateTime, double>继承的对象的序列化不包括结果json字符串中的字段和属性。

注意:这是一个简化的示例。是的,我知道不应该从Dictionary类型派生。

序列化类型为:

的对象
public class Timeserie : Dictionary<DateTime, double>
{
    public string id;
    public Timeserie()
    {
    }
    public Timeserie(string id)
    {
        this.id = id;
    }
}
使用:

var json_settings = new JsonSerializerSettings() { TypeNameHandling = TypeNameHandling.All };
var s = JsonConvert.SerializeObject(timeserie, Formatting.Indented, json_settings);

只包含基类数据:

{
  "01/02/2009 00:00:00": 10.23,
  "01/05/2009 00:00:00": 11.33
}

不包含id字段。

我需要如何使用json.net,以便在派生类中声明的字段和属性包含在序列化中?

看一下json.net的代码,它似乎有一个特殊的契约来处理字典。

所以要么创建一个新的契约,要么封装字典(即,使字典成为你的类的属性)

如果您创建了相互继承的普通类,则此代码将序列化派生类的所有属性

相关内容

  • 没有找到相关文章

最新更新