基于数据库配置的 JSON 转换工具 ,解决两个不同结构不同字段名的 JSON字符串 之间的转换问题,支持xml形式的JSON

背景

公司启动了一个紧急项目,需要与几个第三方系统对接。

虽然一开始约定好了系统间交互的接口文档,但随着版本的迭代、需求的变更各系统都做了不小的改动。

问题

1.第三方的接口参数JSON属性名称与文档不一致

2.第三方的接口入参JSON结构与文档不一致

3.同一个业务,不同系统的接口结构不一样

如何在不修改原有代码的基础上,对参数进行动态的转换解决上述问题?

解决思路

参数转换可配置化,在数据库中维护一套原有JSON 与 目标JSON 的映射关系,调用封装好的json转换方法即可获取到转换后的JSON。

效果如下图:

 

转换配置示例

JSONObject转换

1.梳理映射关系(为便于理解这里用json来展示,实际需在数据库中配置)

2.数据库配置

#注意事项#

  1. config_name必填,用来区分不同参数配置信息
  2. 配置信息实际上是个树状结构 ,parent表是父节点,config_key表是子节点
  3. *每条配置信息的根节点均为root, 第一个子节点必须是配置信息名称,然后才是参数的结构*(此处有优化的空间,但懒得改了...)
  4. type的取值,如果当前节点的value是JSONObject 则填写object,如果是JSONArray则填写list,其他填string(目前只支持全String类型,懒得扩展了...)
  5. 如果type为list , config_value 的配置要分层,下面会有例子。

3.转换结果

{
    "target":
    {
        "no": "originValue",
        "phone": "15888888888"
    }
}

JSONArray 转换

1.梳理映射关系

2.数据库配置

3.转换结果

{
    "target": [
        {
            "no": "originValue",
            "phone": "15888888888"
        },
        {
            "no": "originValue2",
            "phone": "18688888888"
        }
    ]
}

代码地址

https://gitee.com/yxli13/mySpace

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值