会社が提供する API から読み取っていますが、問題は、データを取得しているアカウントの 1 つに約 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が初めてです。