JSON字段名能否以数字开头?2ndTierCeid合规性及转XML报错排查
问题1:2ndTierCeid字段是否符合JSON语法规范
完全符合。JSON语法仅要求键名为合法UTF-8字符串、用双引号包裹即可,对键名的首字符类型没有限制,也没有额外的命名规则约束,你提供的整段JSON结构都是合法的。
问题2:报错根源定位
你遇到的SAXParseException错误和JSON本身无关,是JSON转XML的转换逻辑违反了XML语法规范导致的:
- 绝大多数通用JSON转XML工具的默认逻辑,是直接把JSON的键名作为XML的元素标签名使用
- XML语法对元素标签名有严格限制:不能以数字、标点符号开头,仅允许以字母、下划线、冒号作为首字符
- 你这里的
2ndTierCeid以数字2作为首字符,直接映射为XML标签名时就会触发格式校验失败,抛出对应错误。
可行解决方案
- 预处理JSON键名:转换前给所有数字开头的键名增加合法前缀(比如加下划线改成
_2ndTierCeid),转换完成后按需还原即可 - 更换支持自定义映射规则的转换工具:使用支持配置键名和XML标签名映射关系的转换组件,单独为数字开头的键指定合法的XML标签名。
内容的提问来源于stack exchange,提问作者Josh E
相关产品推荐
相关产品推荐

