Rumah >Java >javaTutorial >Mengapa Saya Mendapat Ralat \'Dijangkakan BEGIN_ARRAY tetapi BEGIN_OBJECT\' Semasa Menghuraikan JSON dalam Java?
Ralat Penghuraian JSON: "Dijangka BEGIN_ARRAY tetapi BEGIN_OBJECT"
Di Java, anda menghadapi ralat "Dijangka BEGIN_ARRAY tetapi BEGIN_OBJECT " disebabkan oleh ketidakpadanan antara struktur JSON yang dijangka dan sebenar semasa menghuraikan menggunakan Gson.
Struktur JSON
Respons JSON yang disediakan daripada pelayan bukanlah tatasusunan tetapi objek tunggal:
<code class="json">{ "dstOffset" : 3600, "rawOffset" : 36000, "status" : "OK", "timeZoneId" : "Australia/Hobart", "timeZoneName" : "Australian Eastern Daylight Time" }</code>
Kod Parsing Gson
Walau bagaimanapun, dalam kod anda, anda tersilap mengandaikan bahawa respons JSON ialah susunan objek Post:
<code class="java">List<Post> postsList = Arrays.asList(gson.fromJson(reader, Post[].class));</code>
Gson menjangkakan tatasusunan, jadi ia melemparkan ralat apabila ia menemui aksara BEGIN_OBJECT dalam respons JSON.
Penyelesaian
Kepada selesaikan ralat, ubah suai kod anda untuk mengharapkan satu objek Post:
<code class="java">Post post = gson.fromJson(reader, Post.class);</code>
Perubahan ini akan sejajar dengan struktur JSON sebenar dan menghapuskan ralat penghuraian.
Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat \'Dijangkakan BEGIN_ARRAY tetapi BEGIN_OBJECT\' Semasa Menghuraikan JSON dalam Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!