die überprüfung, ob fehlerhaftes Objekt im json-array

Ich versuche, eine Liste der Objekte in ein array, es funktioniert gut, wenn die Objekte sind alle gut, aber wenn ich 4000 Datensätze, das ist schwer zu sehen, welche fehlerhaft ist. Wie kann ich überprüfen, welcher Teil der Zeichenfolge ist ungültig oder überspringen Sie das bestimmte Objekt.. es wäre besser wenn ich pin Punkt, wo es immer fehlerhaften, aber wie ich schon sagte, mit 4000 Datensätzen der Fehler hilft mir nicht viel. Hier ist mein code:

JsonParser parser = new JsonParser();
JsonReader jreader = new JsonReader(new StringReader(result));
jreader.setLenient(true);

JsonElement elem = parser.parse(reader); //throws malformed json error
JsonArray contacts = elem.getAsJsonArray();

Gson converter = new Gson();
ContactObject obj = null;

Type cons = new TypeToken<ArrayList<Contact>>(){}.getType();
temp = converter.fromJson(contacts, cons);

Hier ist der Fehler:

com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Unterminated object at line 1 column 38670
    at com.google.gson.internal.Streams.parse(Streams.java:56)
    at com.google.gson.JsonParser.parse(JsonParser.java:84)
    at com.android.companya.ContactServer$APICalls.doInBackground(APIServer.java:737)
    at com.android.companya.ContactServer$APICalls.doInBackground(APIServer.java:1)
    at android.os.AsyncTask$2.call(AsyncTask.java:287)
    at java.util.concurrent.FutureTask.run(FutureTask.java:234)
    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
    at java.lang.Thread.run(Thread.java:856)
 Caused by: com.google.gson.stream.MalformedJsonException: Unterminated object at line 1 column 38670
    at com.google.gson.stream.JsonReader.syntaxError(JsonReader.java:1310)
    at com.google.gson.stream.JsonReader.nextInObject(JsonReader.java:722)
    at com.google.gson.stream.JsonReader.peek(JsonReader.java:382)
    at com.google.gson.stream.JsonReader.hasNext(JsonReader.java:349)
    at com.google.gson.internal.bind.TypeAdapters$25.read(TypeAdapters.java:657)
    at com.google.gson.internal.bind.TypeAdapters$25.read(TypeAdapters.java:650)
    at com.google.gson.internal.bind.TypeAdapters$25.read(TypeAdapters.java:633)
    at com.google.gson.internal.Streams.parse(Streams.java:44)
  • Warum nicht einfach mit JSONObject oder JSONArray sind Schleife durch Sie selbst?
InformationsquelleAutor jedgard | 2013-08-20
Schreibe einen Kommentar