JSON Parsing Menggunakan GSON dalam Android
Masalah:
Anda menghadapi ralat pada baris 73 data JSON anda apabila cuba menghuraikannya menggunakan GSON. Secara khususnya, ralat menunjukkan jangkaan BEGIN_OBJECT tetapi menemui NAMA.
Jawapan:
1. Laraskan Kaedah Penghuraian:
Pertimbangkan untuk menyemak semula kaedah JsonParse anda untuk membaca nilai GSON seperti ini:
<code class="java">Gson gson = new Gson(); Reader reader = new InputStreamReader(ims); GsonParse gsonObj = gson.fromJson(reader, GsonParse.class);</code>
Andaikan anda menerima satu blok data JSON dan bukannya senarai , pendekatan ini sepatutnya berkesan. Laraskan pembolehubah ims untuk mentakrifkan strim yang anda mahu baca.
2. Semak Struktur Kelas:
Pastikan kelas GsonParse dan Words anda mempunyai nama medan dan jenis data yang betul. Berikut ialah versi yang dikemas kini:
GsonParse.class:
<code class="java">public class GsonParse { private String count; private String colbreak; private String score; private List<Words> mWords = new ArrayList<>(); private String seek; // getters and setters omitted for brevity }</code>
Words.class:
<code class="java">public class Words { private String count; private String word; private String name; private String words; private String seek; // getters and setters omitted for brevity }</code>
3. Pengekodan UTF-8:
GSON tidak menyokong aksara UTF-8 secara langsung, jadi jika anda menerima respons melalui HTTP, anda perlu menukarnya kepada UTF-8 dalam respons HTTP itu sendiri . Anda boleh menggunakan kod berikut:
<code class="java">String jsonString = new Gson().toJson(objectToEncode); byte[] utf8JsonString = jsonString.getBytes("UTF8"); responseToClient.write(utf8JsonString, 0, utf8JsonString.Length);</code>
4. Pertimbangan Tambahan:
Atas ialah kandungan terperinci Mengapakah saya mendapat ralat \"BEGIN_OBJECT yang dijangka tetapi NAME found\" semasa menghuraikan JSON dengan GSON dalam Android?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!