java - 使用 JSONML.toJSONObject() 时获取 JsonException

标签 java json jsonml

我正在使用 JSONML 将 xml 字符串转换为 JSONObject。 这是我的 xml 字符串

"<soapenv:Body xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\"><jsonArray><jsonElement><message>entity is deleted<\/message><errorCode>ENTITY_IS_DELETED<\/errorCode><\/jsonElement><jsonElement><message>entity is deleted<\/message><errorCode>ENTITY_IS_DELETED<\/errorCode><\/jsonElement><\/jsonArray><\/soapenv:Body>"

当我尝试 JSONML.toJSONObject() 它给了我

Caused by: org.json.JSONException: Bad character in a name at 32 [character 33 line 1]
    at org.json.JSONTokener.syntaxError(JSONTokener.java:433)
    at org.json.XMLTokener.nextToken(XMLTokener.java:288)
    at org.json.JSONML.parse(JSONML.java:173)
    at org.json.JSONML.toJSONObject(JSONML.java:286)
    at org.json.JSONML.toJSONObject(JSONML.java:304)
    at com.thbs.automaton.commonUtils.TestcaseUtils.compareXml(TestcaseUtils.java:144)
    ... 57 more

这是由于转义字符(\)造成的。我尝试通过删除所有\字符来解决此问题,这解决了我的问题。但我认为这不是一个好的做法。

谁能提出更好的方法吗?

最佳答案

“\”表明原始字符串不是“XML 字符串”。它是一个“转义的 XML 字符串”。您应该找出 XML 字符串被转义的原因和方式。

可能是因为传输为 JSON。在这种情况下,您应该将原始 (JSON) 字符串转换为数据字符串,即 XML 字符串。使用这样的代码

String xmlString = jsonParser(originalString, String.class);

之后作为你的运行

JSONML.toJSONObject(xmlString);

关于java - 使用 JSONML.toJSONObject() 时获取 JsonException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49527231/

相关文章:

java - 对象转换模式

javascript - 通过 POST 接收 JSON 的 API 接收到的类型与发送的类型不同

java - 从 GWT ArrayList 中字符串化 JSON,然后返回数组

java - 如何使用java修改dxf文件

javascript - AngularJs 嵌套状态与 ui 路由器不工作

java - 是否可以使用 int 标识符定义枚举?

javascript - 是否有关于如何填充 Revision.Description 以及在什么条件下填充的文档?

html - JsonML 中如何表示未闭合的标签?

json - 从 XML 到 JSON 的转换