0

我正在使用 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

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

任何人都可以提出更好的方法吗?

4

1 回答 1

1

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

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

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

在那之后作为你的

JSONML.toJSONObject(xmlString);
于 2018-03-28T08:40:13.630 回答