1

我目前正在开发一些实用程序库来帮助两个现有系统之间的集成。作为集成过程的一部分,我需要能够将对象转换为 JSON。

由于各种原因,我需要能够修改序列化的字段名称(即将驼峰大小写转换为蛇大小写,并且在某些情况下完全更改字段名称)。

系统的一半(大部分)是用 Java 编写的,完全在我的控制之下。我对 JSON 进行序列化/反序列化的首选解决方案是使用 Jackson。由于各种原因,我们认为修改现有实体类以应用杰克逊所需的属性来生成正确的 JSON 是一种风险。幸运的是,Jackson 提供了 Mixins,它本质上允许我动态地应用注解。这远远优于编写自定义序列化器和反序列化器来完成相同的工作。

系统的另一半是一个 ASP.Net 应用程序,我想再次修改尽可能少的现有代码。我目前正在使用 JSON.Net 进行序列化/反序列化,它似乎支持我需要的一切,包括定义属性以覆盖属性名称。

但是,我似乎无法解决的一件事是 JSON.Net 是否支持与 Jackson 相同的 Mixins 概念。如果我能摆脱它,我想避免修改现有的 .NET 实体类以包含新属性,但我找不到任何文档表明 JSON.Net 中存在此功能。

那么,有人知道是否有(记录/未记录的)方法可以使用 JSON.Net 应用类似 Jackson 的 mixin,还是我需要编写客户序列化器/反序列化器?

4

1 回答 1

1

不确定这是否有帮助,但作为ClassMate项目的一部分,Jackson 的混入处理有某种外部实现。库也做了很多其他的事情,所以我不知道提取处理常规注释和混入合并的部分有多容易。

于 2013-01-28T18:35:11.247 回答