自定义json.net序列化器/反序列化器,用于ExpandoObject的特殊键

时间:2015-07-27 13:40:04

标签: c# serialization json.net deserialization

我想序列化和反序列化具有非平凡值的ExpandoObject。 ExpandoObject的某些值包含具有导致循环引用的属性的对象。

我为这些对象编写了一个自定义序列化器/反序列化器。但是,这些对象出现在ExpandoObject中的许多位置(也嵌套,不仅在根级别)。但他们总是拥有相同的钥匙!我希望反序列化器为某个键的ExpandoObject的每个属性获取自定义反序列化器。

例如:

{
    "a": 12.5,
    "b": "hello world",
    "special": { /* ... */ },
    "c": -4,
    "d":
        {
            "x": "test",
            "special":  { /* ... */ },
            "y": 152
        },
    "e": 9053
}

我希望每个属性特殊都可以使用我的自定义反序列化器反序列化到我的班级。其他所有内容都应由默认的反序列化程序处理。

我是否正确地处理我的问题?如果是,我如何使用JSON.NET实现这一目标?

0 个答案:

没有答案