Rumah >Java >javaTutorial >Bagaimana untuk menyelesaikan ralat penghuraian JSON dengan GSON dalam Android apabila struktur JSON mempunyai objek akar yang tidak dijangka?

Bagaimana untuk menyelesaikan ralat penghuraian JSON dengan GSON dalam Android apabila struktur JSON mempunyai objek akar yang tidak dijangka?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-30 17:14:02305semak imbas

How to troubleshoot JSON parsing errors with GSON in Android when the JSON structure has an unexpected root object?

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:

  1. Namakan semula kiraan Rentetan peribadi; kepada kiraan int peribadi;, kerana "kiraan" dalam JSON ialah nilai berangka.
  2. Namakan semula colbreak String peribadi; kepada private int colbreak; atas sebab yang sama.
  3. Namakan semula kaedah getter dan setter dengan sewajarnya (cth., getCount dan setCount bukannya getString dan setString).
  4. Tukar Senarai peribadi mWords = New ArrayList(); ke Senarai peribadi mWords = ArrayList(); (perhatikan nama kelas "Word" tunggal).
  5. Kemas kini struktur kelas Word dan kaedah getter/setter secara serupa.

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn