XML同名节点为何转成数组?
XML允许同一父节点下出现多个同名子节点,转换为JSON时,工具常用数组保留这些条目。不能把它们机械写成JSON对象里的重复键,否则消费者可能只保留其中一项。数组形状由转换约定决定,接口接收方还需确认单项与多项时是否保持相同结构。
2026年11月7日,www.kkce.com 实操截图。同名check转换为数组,各项含#text;未把此结构说成通用唯一标准。
用两个check观察返回形状
此次在KKCE XML与JSON转换输入checks下依次包含dns、tls两个check的XML。结果中checks.check为数组,每项又用#text字段表示文字。截图保留输入和输出;这是该工具的映射方式,并不表示所有转换器都必须生成相同层次。
数组保留同名元素的多次出现
JSON对象依赖成员名表达属性,数组则适合表示一组条目。将兄弟节点收进数组,可以避免同名字段覆盖,并保留该数组内条目的顺序。但属性、文本以及混合内容还可能采用其他表示,不能仅看名称相同就猜出完整转换规范。
一个元素时更要确认模式
有些实现只在重复时才输出数组,一个元素时则直接输出对象,容易使客户端类型判断分叉。业务双方可约定指定路径始终使用数组,或在读取层做明确归一化。应同时准备零项、一项与多项样例,不能只以本轮两项通过作为兼容结论。
选定映射后用结构校验兜底
记录所用转换器及关键选项,确认#text等特殊字段的处理,升级时对代表性样例做结构比对。快快测适合快速展示同名元素如何映射,生产接口仍要以约定的数据模型为准。需要回转XML时,还要验证是否存在转换未保留的信息。
上一篇:
YAML少缩进一层,配置就变了吗?
下一篇:
AES明文整一块,为何还填充?