我想为一个人子类列表或集合的情况编写一个自定义JsonConverter,但是为子类添加额外的属性(见
here)。 JSON.NET的当前实现只是将列表更改为一个子对象数组,并忽略所有添加的属性。所以我想编写一个新的JsonConverter,它将对象看作是一个不是List的对象,并且只是按照正常的方式序列化所有的东西,然后在序列化中添加一个新的属性,名为’_Items’,其中数据的实际数组是存储。
现在我已经写了一个类,这对于我们特定的List子类来说完全是这样,但是我必须逐个手动指定所有的属性。但是如果我可以编写一个转换器,把它当成一个正常的对象,那么手动处理这些项目,我会变成金色的。我甚至不关心我是否重复了另一个课程的一半(甚至更多!),但是我想为这些情况制作一个可重用的转换器。但是,正如我所说,我找不到默认的转换器。
所以…有谁知道这是哪里?
JSON.NET中没有“默认转换器”。
如果您能够检查JsonSerializerInternalWriter类,请查看SerializeValue方法。在它的顶部有’转换器查找和执行’阶段。但是,如果没有匹配的转换器,则采用契约类型序列化(switch语句)。
我没有找到一种方式(正确的方式或优雅的黑客)能够执行通用合同序列化(例如:正常地解析对象)与实体的扩展自定义序列化(我假设您正在尝试做)。