Rumah >Java >javaTutorial >Bagaimana untuk menyelesaikan ralat penghuraian JSON dengan GSON dalam Android apabila struktur JSON mempunyai objek akar yang tidak dijangka?
JSON Parsing Menggunakan GSON dalam Android: Penyelesaian Masalah
Dalam percubaan anda untuk menghuraikan data JSON menggunakan GSON, anda menghadapi ralat disebabkan struktur JSON yang tidak dijangka. Mari kita mendalami isu ini dan berikan penyelesaian.
Struktur JSON yang anda cuba hurai nampaknya mempunyai objek akar, tetapi anda tidak menggunakan kaedah fromJson Gson dengan betul untuk membaca kandungannya. Juga, ambil perhatian bahawa Gson tidak direka bentuk untuk mengendalikan aksara UTF-8 secara langsung.
Kaedah Penghuraian Betul
Untuk menyelesaikan ralat, anda perlu mengubah suai kaedah penghuraian anda sebagai berikut:
<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>
Mengubah suai Struktur Kelas Data
Selain itu, anda mungkin perlu mengubah suai struktur kelas GsonParse anda agar sepadan dengan struktur JSON. Berikut ialah perubahan yang memerlukan perhatian:
Pengendalian UTF-8
Pastikan bahawa respons JSON yang anda terima daripada pelayan diformatkan dengan betul sebagai UTF-8. Anda boleh menambah pengepala jenis MIME dalam respons HTTP untuk menentukan pengekodan yang betul, contohnya:
responseToClient.setContentType("application/json; charset=utf-8");
Dengan mempertimbangkan pengubahsuaian ini, anda sepatutnya berjaya menghuraikan data JSON menggunakan GSON dalam aplikasi Android anda.
Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan ralat penghuraian JSON dengan GSON dalam Android apabila struktur JSON mempunyai objek akar yang tidak dijangka?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!