Heim >Java >javaLernprogramm >Wie kann ich JSON-Parsing-Fehler mit GSON in Android beheben, wenn die JSON-Struktur ein unerwartetes Stammobjekt aufweist?
JSON-Analyse mit GSON in Android: Fehlerbehebung
Bei Ihrem Versuch, JSON-Daten mit GSON zu analysieren, tritt ein Fehler auf eine unerwartete JSON-Struktur. Lassen Sie uns tiefer auf das Problem eingehen und eine Lösung anbieten.
Die JSON-Struktur, die Sie analysieren möchten, scheint ein Stammobjekt zu haben, aber Sie verwenden die fromJson-Methode von Gson nicht richtig, um ihren Inhalt zu lesen. Beachten Sie außerdem, dass Gson nicht für die direkte Verarbeitung von UTF-8-Zeichen ausgelegt ist.
Korrekte Parsing-Methode
Um den Fehler zu beheben, müssen Sie Ihre Parsing-Methode ändern folgt:
<code class="java">public static <T> ArrayList<T> JsonParse(T t, InputStream inputStream) { ArrayList<T> lcs = new ArrayList<>(); try (JsonReader reader = new JsonReader(new InputStreamReader(inputStream, "UTF8"))) { reader.beginObject(); while (reader.hasNext()) { T cse = (T) gson.fromJson(reader, t.getClass()); lcs.add(cse); } reader.endObject(); } catch (Exception e) { e.printStackTrace(); } return (ArrayList<T>) lcs; }</code>
Ändern der Datenklassenstruktur
Darüber hinaus müssen Sie möglicherweise Ihre GsonParse-Klassenstruktur ändern, um sie an die JSON-Struktur anzupassen. Die folgenden Änderungen erfordern Aufmerksamkeit:
UTF-8-Verarbeitung
Stellen Sie sicher, dass die JSON-Antwort, die Sie vom Server erhalten, ordnungsgemäß als UTF-8 formatiert ist. Sie können der HTTP-Antwort einen MIME-Typ-Header hinzufügen, um beispielsweise die richtige Codierung anzugeben:
responseToClient.setContentType("application/json; charset=utf-8");
Wenn Sie diese Änderungen berücksichtigen, sollten Sie in der Lage sein, JSON-Daten mithilfe von GSON in Ihrer Android-Anwendung erfolgreich zu analysieren.
Das obige ist der detaillierte Inhalt vonWie kann ich JSON-Parsing-Fehler mit GSON in Android beheben, wenn die JSON-Struktur ein unerwartetes Stammobjekt aufweist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!