+
 新版

java有没有不同报文格式、字段之间映射的工具或框架

hy86 发布于 2018/08/14 22:45
阅读 3K+
收藏 1

我们知道各业务系统之间通讯,需要交换报文,而每个厂商开发的业务系统,定义的报文格式和字段命名不尽相同。如果有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工具,或者可供参考的类似工具,使自己开发有个思路。当然要尽可能地轻量。

加载中
0
starryzxj
starryzxj

收集报文池,用于报文对比之类的项目有没

0
zpache
zpache

XStream 对象和xml之间的转换

Jackson 对象和json之间的转换

 

所以:xml==》对象==》json

0
osc_74608746
osc_74608746

作者找到解决方案了吗?最近刚好也有类似的需求

z
zhaonz
smooks框架
0
卡卡卡是是是
卡卡卡是是是

程序接口统一输出格式比如一层map,定义个输出表,使用jsonPath定义输出字段。根据不同系统输出维护输出表就行。

0
冯威111

有这样的方案 ?求 解!!!

0
炎黄伙哥
炎黄伙哥

开发层面的没见过能直接转的,但是也没见过这种需求的。拿你例子中AB两个系统,A发给B的肯定是A经过逻辑处理得到的报文,也就是POJO转B格式,不会是A格式转B格式

0
z
zhaonz

可以用smooks框架哦

OSCHINA
登录后可查看更多优质内容
返回顶部
顶部