1

我正在尝试使用 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”的属性。XMLSerializer 在尝试以此名称创建 XML 标记时抛出异常,因为 XML 标记名称中不允许使用 $。有什么方法可以覆盖序列化程序完成的 XML 格式良好检查?

4

3 回答 3

0

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

于 2011-10-28T15:03:45.017 回答
0

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

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

于 2011-10-28T11:31:36.643 回答
0

我查看了 json-lib XMLSerializer 的规范,令我惊讶的是,它似乎没有用于序列化其键不是有效 XML 名称的 JSON 对象的选项。如果是这种情况,那么我认为您将需要找到一个不同的库。

于 2011-10-28T14:26:03.967 回答