我们知道各业务系统之间通讯,需要交换报文,而每个厂商开发的业务系统,定义的报文格式和字段命名不尽相同。如果有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工具,或者可供参考的类似工具,使自己开发有个思路。当然要尽可能地轻量。
Java
收集报文池,用于报文对比之类的项目有没
XStream 对象和xml之间的转换
Jackson 对象和json之间的转换
所以:xml==》对象==》json
作者找到解决方案了吗?最近刚好也有类似的需求
程序接口统一输出格式比如一层map,定义个输出表,使用jsonPath定义输出字段。根据不同系统输出维护输出表就行。
有这样的方案 ?求 解!!!
开发层面的没见过能直接转的,但是也没见过这种需求的。拿你例子中AB两个系统,A发给B的肯定是A经过逻辑处理得到的报文,也就是POJO转B格式,不会是A格式转B格式
可以用smooks框架哦