JSON.NET中使用的默认JsonConverter是什么?

问题描述:

我试图编写一个自定义的JsonConverter,用于某个人子类化一个列表或集合,但然后向该子类添加额外属性的情况(请参阅here)。 JSON.NET的当前实现只是将列表更改为一个子对象数组,并忽略所有添加的属性。所以我想写一个新的JsonConverter对待对象,就像它不是一个List并只是序列化一切正常,但然后在序列化中添加一个名为'_Items'的新属性,其中实际的数组数据被存储。JSON.NET中使用的默认JsonConverter是什么?

现在我已经写了一个类来完成这个特定的List子类,但我必须手动指定所有的属性。但如果我可以写一个转换器,把它当作一个普通对象来处理,然后手动处理这些项目,我就会变成黄金。我甚至不关心我是否会复制另一班的一半(甚至更多!),但我很乐意为这些情况制作一个可重用的转换器。但是,正如我所说的,我无法找到默认转换器。

所以......任何人都知道这是哪里?

JSON.NET中没有'默认转换器'。

如果您能够检查JsonSerializerInternalWriter课程,请参阅SerializeValue方法。其中,顶部有'转换器查找和执行'阶段。但是,如果没有匹配的转换器,它会使用合同类型序列化(switch语句)。我还没有找到一种方式(一种正确的方式或一个优雅的黑客),以便能够在一个实体上执行一个通用合约序列化(例如:正常解析一个对象)和一个扩展的自定义序列化(我假设你正在尝试做)。