I have this JSON conversion to XML issue I'm trying to figure out and am not sure whether it's a JSON issue or a conversion to XML issue.
{
"AutomaticRenewalFlag" : "false",
"2ndTierCeid" : "7rfqz",
"BillingFrequency" : "12"
}
Is the second field here valid (2ndTierCeid
) as far as JSON goes?
I'm getting the following error in the app we're using:
Failed to transform JSON, error was: java.io.IOException: org.xml.sax.SAXParseException: The content of elements must consist of well-formed character data or markup.
Short answer: JSON field names may begin with a number; XML element names may not.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With