有没有办法在 JSON.Net 模仿杰克逊的混音

本文关键字:杰克逊 Net JSON 有没有 | 更新日期: 2023-09-27 17:56:32

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

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

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

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

然而,我似乎无法弄清楚的一件事是 JSON.Net 是否支持与杰克逊相同的Mixins概念。如果我能侥幸逃脱,我想避免修改现有的 .NET 实体类以包含新属性,但我找不到任何文档表明此功能存在于 JSON.Net 中。

那么,有没有人知道是否有一种(记录/未记录的)方法可以使用 JSON.Net 应用类似杰克逊的混合,或者我需要编写客户序列化器/反序列化器?

有没有办法在 JSON.Net 模仿杰克逊的混音

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