使用JSONML.toJSONObject()时获取JsonException

时间:2018-03-28 06:06:06

标签: java json jsonml

我使用JSONML将xml String转换为JSONObject。 这是我的xml String

"<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

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

有人能提出更好的方法吗?

1 个答案:

答案 0 :(得分:1)

&#34; \&#34; s显示原始字符串不是&#34; XML字符串&#34;。它是一个&#34;转义的XML字符串&#34;。您应该找出XML String转义的原因和方式。

也许是因为转移为JSON。在这种情况下,您应该将原始(JSON)字符串转换为数据字符串,以便说出XML字符串。使用这样的代码

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

之后运行

JSONML.toJSONObject(xmlString);