xml – Can JSON field names start with a number?
Short answer: JSON field names may begin with a number; XML element names may not.
Details
JSON has no restrictions unique to the first character of a member
string
,
member ::= ws string ws ':' element string ::= '"' characters '"' characters ::= "" | character characters character ::= '0020' . '10FFFF' - '"' - '' | '' escape
but XML does not allow tag names to begin with a number:
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]
Therefore, you’ll have to restrict your JSON to not begin with a number if you wish there to be an unmodified mapping of JSON keys to XML tag names.
Read more here: Source link