2026年10月14日晚上九点四十,南京鼓楼区一家医疗信息化公司的工位上,老周盯着屏幕上第7版报错日志,第三次把同一批检验数据从JSON手工改回XML。甲方第二天上午要验收,他手里还有两个科室的字段没对齐,改完这批还得再跑一遍核对——那天他做了一个决定:不再一列一列地手工搬。
老周三十四岁,做ETL八年,公司接的活一半是给医院、疾控做数据对接。新系统接口吐JSON,老系统只认XML,中间这层转换,长期落在人身上。
之前是怎么扛的
按他的说法,以前的办法叫“人肉转换”:打开接口返回的JSON,对照老系统的XML模板,一个字段一个字段复制,嵌套结构手工缩进,数组拆成重复节点。一批两万条左右的检验数据,熟练也要47分钟,中间不能被打断。
代价算得出来。9月到10月这波三家医院的对接,他连加了11天班,每天多耗两个多小时在这件事上;一个月下来光手工转换就吃掉约36小时。更贵的是错:10月初一次手工漏了<unit>节点,检验单位全空,甲方退回重跑,他和同事补了两个晚上,公司为此免掉了一笔约4000元的阶段服务费。
“不是不会写脚本,是每次字段结构都不一样,写一次丢一次。”他说,临时脚本维护成本比手工还高,索性就硬扛。
换了之后真实变了什么
那个晚上他在搜索框里敲的是“json转xml 在线 保留嵌套”,翻了几页,用上了JSON 转 XML 双向互转工具。粘进去、点转换、复制结果,第一批跑完他看了眼表:6分钟,包括核对。
量化下来:单批47分钟压到6分钟,降了约87%;三家医院这轮对接,原计划还要熬的四个晚上没再熬;按他的工时折算,每月省下约36小时,相当于多出四个半工作日。那笔4000元的返工风险,至少这轮没再出现。他也没再提外包——之前问过,这种零散转换外包报价按批算,一轮下来要小两千。
用下来有两个小问题。一是JSON里的数组转成XML后,节点名默认按通用规则生成,和老系统约定的<item>对不上,他后来在转换前统一把键名改成模板里的命名,再转就顺了。二是某次带中文的字段出现乱码,查下来是源JSON编码没声明,补上UTF-8后正常。都不算大毛病,但第一次遇到会愣一下。
现在他的流程固定成三步:接口拉JSON、工具转XML、本地脚本只做字段映射校验。手工那段彻底没了。
给同样处境的人提个醒
如果你的对接也是JSON进、XML出,别急着写脚本,先看看是不是每次结构都不同——结构多变的时候,工具比脚本省心。转换前把目标XML的节点命名规则理清楚,比转完再改省一半时间。带中文的数据,先确认源文件编码。
老周说,这活本来就不该是人干的。“人该干的是核对业务逻辑,不是搬括号。”