我目前正在开发一些实用程序库,以帮助两个现有系统之间的集成。作为集成过程的一部分,我需要能够将对象转换为JSON。
由于各种原因,我需要能够修改序列化字段名称(即将camel case转换为snake case,并在某些情况下完全更改字段名称)。
系统的一半(主要是)用Java编写,完全由我控制。我首选的序列化/反序列化JSON的解决方案是使用Jackson。由于各种原因,我们认为修改现有实体类是为了应用Jackson所需的属性来生成正确的JSON。幸运的是,Jackson提供了Mixins,它基本上允许我动态地应用注释。这远远优于编写自定义序列化器和反序列化器来完成同样的工作。
系统的另一半是ASP.Net应用程序,我想再次修改现有代码,因为我可以逃避。我目前正在使用JSON.Net进行序列化/反序列化,它似乎支持我需要的一切,包括定义属性以覆盖属性名称。
然而,我似乎无法解决的一件事是JSON.Net是否支持与杰克逊相同的Mixins概念。如果我可以逃脱它,我想避免修改现有的.NET实体类以包含新属性,但我找不到任何文档表明JSON.Net中存在此功能。
那么,是否有人知道是否有(记录/未记录)方式使用JSON.Net应用类似Jackson的mixins,或者我是否需要编写客户序列化器/反序列化器?
答案 0 :(得分:1)
不确定这是否有帮助,但作为ClassMate项目的一部分,杰克逊的混合处理有一些外部实现。库也做了很多其他的事情,所以我不知道提取处理常规注释和混合的合并的部分是多么容易。