使用jsonlib从JSON转换为XML时无效的字符

时间:2011-10-28 11:21:40

标签: java xml json xml-serialization json-lib

我正在尝试使用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格式良好检查吗?

3 个答案:

答案 0 :(得分:0)

首先我建议添加你正在使用的语言(它是Java,对吧?)。

您可以覆盖检查XML标记名称无法执行任何操作的方法。

答案 1 :(得分:0)

我看了一下json-lib XMLSerializer的规范,令我惊讶的是,似乎没有选择序列化其密钥不是有效XML名称的JSON对象。如果是这种情况,那么我认为你需要找到一个不同的库。

答案 2 :(得分:0)

您可以循环json.keySet(必要时递归)并使用有效密钥替换无效密钥(使用removeadd)。