我正在尝试使用Java中的jsonlib将JSON字符串转换为XML。
JSONObject json = JSONObject.fromObject(jsonString);
XMLSerializer serializer = new XMLSerializer();
String xml = serializer.write( json );
System.out.println(xml);
我得到的错误是
nu.xom.IllegalNameException: 0x24 is not a legal NCName character
这里的问题是我的JSON中有一些属性是无效的XML字符。例如。我有一个名为“$ t”的房产。在尝试使用此名称创建XML标记时,XMLSerializer会抛出异常,因为XML标记名称中不允许使用$。有什么方法可以覆盖序列化器完成的XML格式良好检查吗?
答案 0 :(得分:0)
首先我建议添加你正在使用的语言(它是Java,对吧?)。
您可以覆盖检查XML标记名称无法执行任何操作的方法。
答案 1 :(得分:0)
我看了一下json-lib XMLSerializer的规范,令我惊讶的是,似乎没有选择序列化其密钥不是有效XML名称的JSON对象。如果是这种情况,那么我认为你需要找到一个不同的库。
答案 2 :(得分:0)
您可以循环json.keySet
(必要时递归)并使用有效密钥替换无效密钥(使用remove
和add
)。