json - JSON 字段名称可以以数字开头吗?
问题描述
我有这个 JSON 转换为 XML 的问题,我试图弄清楚,但不确定它是 JSON 问题还是转换为 XML 问题。
{
"AutomaticRenewalFlag" : "false",
"2ndTierCeid" : "7rfqz",
"BillingFrequency" : "12"
}
2ndTierCeid
就 JSON 而言,这里的第二个字段是否有效 ( )?
我在我们正在使用的应用程序中收到以下错误:
转换 JSON 失败,错误为:java.io.IOException: org.xml.sax.SAXParseException: 元素的内容必须由格式正确的字符数据或标记组成。
解决方案
简短回答: JSON 字段名称可能以数字开头;XML 元素名称可能没有。
细节
JSON 对 a的第一个字符没有唯一的限制member
string
,
member ::= ws string ws ':' element string ::= '"' characters '"' characters ::= "" | character characters character ::= '0020' . '10FFFF' - '"' - '\' | '\' escape
但XML 不允许标签名称以数字开头:
Name ::= NameStartChar (NameChar)* NameStartChar ::= ":" | [A-Z] | "_" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF] NameChar ::= NameStartChar | "-" | "." | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]
因此,如果您希望 JSON 键到 XML 标记名称的映射未经修改,则必须限制您的 JSON 不以数字开头。
推荐阅读
- python - 如何通过 Python 脚本为 Blender 材质设置着色器节点属性?
- flutter - 颤振中的 mockito 缺少存根错误。尝试在模拟的 SharedPreferences 上使用 setString
- php - 保护托管在 Bluehost 上的 WordPress 应用程序中的静态内容
- c - Scanf 在某些格式中读取错误的数字
- hibernate - 有没有办法“使用同一实体两次”执行单查询 JOIN FETCH?
- linux - 在linux终端中同时修剪字符串的开头/结尾
- c++ - 随机化不同的 cout 语句(例如获得 4 个可能的测验答案)
- html - 有没有办法让我的页面在 html 中响应?
- android - Android Dev - 如何处理音频输出通道
- javascript - 使用纯 Javascript 创建具有自定义格式的唯一标识符