我正在尝试将对象列表放入数组中,当对象都很好时,它可以正常工作,但是当我得到 4000 条记录时,很难看出哪个是格式错误的。我如何检查字符串的哪一部分格式错误或跳过该特定对象..如果我能指出它格式错误的位置会更好,但就像我说的那样,对于 4000 条记录,错误对我没有多大帮助。这是我的代码:
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);
这是错误:
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)