Я читаю из API, предоставляемого компанией, но проблема в том, что одна из учетных записей, из которых я получаю данные, имеет около 22000 объектов json, она отлично читается с небольшими количествами данных, я бы сказал до 8000 записей, но потом я получаю такие проблемы, как json, не очень хорошо отформатирован, кроме проблемы с возможностью чтения ответа.Чтение много данных, возвращаемых API
Ответ приходит так:
<?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.
Найдите, кто-нибудь обернул массив JSON из 22k элементов в XML (и в качестве бонуса в * одном элементе *). , и стрелять в них. Тебе очень сложно справиться с этим. –
должен быть предоставлен API запросов диапазона. – pierrotlefou
Я знаю ... какая боль ... – jedgard