【发布时间】:2011-10-28 11:21:40
【问题描述】:
我正在尝试使用 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 格式良好检查?
【问题讨论】:
-
为什么要覆盖该检查(并生成无效的 xml)?
-
我正在尝试使用 Google REST API。触发 web 服务后,我得到一个 JSON 响应。我有一个在树结构中显示 XML 的树查看器。所以我必须将 JSON 转换为 XML 以将其显示为树。但在 JSON 中,“$”是一个有效的属性名称。 Google API 返回属性名称,如“$t”、“gCal$timesCleaned”等。所以在将其转换为 XML 时出现错误。
标签: java xml json xml-serialization json-lib