java有没有不同报文格式、字段之间映射的工具或框架
我们知道各业务系统之间通讯,需要交换报文,而每个厂商开发的业务系统,定义的报文格式和字段命名不尽相同。如果有A、B两个系统之间要对接,最笨的方法就是,其中一个系统A基于另一个系统B的报文规则去做适配改造,即让A、B两个系统之间的报文格式,字段名称,甚至通讯协议都保持一致。
如果不采用上述方式,而是在A、B两系统之间提供一个转换(映射)程序,实现两个系统之间的灵活映射,这样就不需要A和B系统做任何改造,像ESB之类的产品可以实现这种转换,但比较笨重,也有xml与json之间互转的开源包(比如json-lib),但这种转换太过简单,希望有一种比较轻量级的开源包,能够实现如下转换:
场景1:
<root>
<name>小李子</name>
</root>
映射为
<data>
<person>
<username>小李子</username>
</person>
</data>
场景2:
<root>
<name>小李子</name>
</root>
映射为
{
"data":{
"students":{
"student":{
"username":"小李子"
}
}
}
}
也就是既能在不同报文格式之间映射互转,也能在不同字段名称之间映射互转,实现两个业务系统之间报文的兼容性。
不知市面上是否有这类开源的API工具,或者可供参考的类似工具,使自己开发有个思路。当然要尽可能地轻量。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(13)
可以用smooks框架哦
开发层面的没见过能直接转的,但是也没见过这种需求的。拿你例子中AB两个系统,A发给B的肯定是A经过逻辑处理得到的报文,也就是POJO转B格式,不会是A格式转B格式
有这样的方案 ?求 解!!!
smooks框架
程序接口统一输出格式比如一层map,定义个输出表,使用jsonPath定义输出字段。根据不同系统输出维护输出表就行。
作者找到解决方案了吗?最近刚好也有类似的需求
XStream 对象和xml之间的转换
Jackson 对象和json之间的转换
所以:xml==》对象==》json
收集报文池,用于报文对比之类的项目有没
请问你的解决方案是啥
引用来自“凡行”的评论
Jackson,对XML,json等常用格式都有支持
但需要针对一个个接口实现java代码的开发哦,如果报文字段之间的转换能用非编码或配置文件的方式来实现就最好了
jaxb支持对象与xml,
Jackson,对XML,json等常用格式都有支持