我正在阅读一家公司提供的 API,但问题是我从中获取数据的帐户之一有大约 22000 个 json 对象,它可以读取少量数据,我会说最多 8000 条记录,但是除了能够读取响应的问题之外,我还遇到了诸如 json 格式不正确的问题。
响应是这样的:
<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://ywers.com">
[{"Name":"Edward", "LastName":"Jones", "Address":"{accepted}"}
,{"Name":"Carlos", "LastName":"Ramirez", "Address":"{Rejected}"}, ....... 22k more records here]</string>
我早些时候在这里寻求一些帮助以获得最好的方法,我得到了关于使用 xml 解析器和 json 解析器读取它的响应,我正在使用 GSON。
String XML = "<Your XML Response>";
XPathExpression xpath = XPathFactory.newInstance()
.newXPath().compile("/*[local-name()='string']");
String json = xpath.evaluate(new InputSource(new StringReader(XML)));
进而
JSONArray jsonRoot = new JSONArray(json.trim());
System.out.println(jsonRoot.getJSONObject(0).getString("Address")); // {accepted}
我遇到的问题是它在读取 XML 时抛出错误,它开始读取,但过了一会儿它停止并出现以下错误:
java.lang.OutOfMemoryError
at java.lang.AbstractStringBuilder.enlargeBuffer(AbstractBuilder.java:94)
at java.lang.StringBuffer.append(StringBuffer.java:219)
at org.apache.harmony.xml.dom.CharacterDataImpl.appendData(CharacterDataImpl.java:43)
......
我将不胜感激有关如何进行此操作的任何建议,我对 android 有点陌生。