"Dijangka BEGIN_ARRAY tetapi BEGIN_OBJECT": Membongkar Ralat Penghuraian JSON
Apabila berurusan dengan manipulasi data JSON, menghadapi ralat seperti "Dijangka tetapi BEGIN_RRAY adalah BEGIN_OBJECT" boleh mengecewakan. Untuk memahami punca dan mencari penyelesaian, mari kita selami senario ralat khusus:
Ralat timbul apabila anda cuba menghuraikan respons JSON ke dalam tatasusunan objek, tetapi respons sebenar ialah objek. Coretan kod berikut menggambarkan isu ini:
<code class="java">Gson gson = new GsonBuilder().setDateFormat("M/d/yy hh:mm a").create(); List<Post> postsList = Arrays.asList(gson.fromJson(reader, Post[].class));</code>
Di sini, postsList dijangka menyimpan koleksi objek Post, namun respons JSON yang diterima hanyalah satu objek Post:
<code class="json">{ "dstOffset" : 3600, "rawOffset" : 36000, "status" : "OK", "timeZoneId" : "Australia/Hobart", "timeZoneName" : "Australian Eastern Daylight Time" }</code>
Untuk menyelesaikan ketidakpadanan ini, ubah suai kod anda untuk mengambil kira struktur objek tunggal:
<code class="java">Post post = gson.fromJson(reader, Post.class);</code>
Dengan menukar JSON terus kepada objek Post tunggal, anda menjajarkan struktur data anda dengan format respons JSON sebenar, menghapuskan kesilapan itu.
Atas ialah kandungan terperinci \'Dijangkakan BEGIN_ARRAY tetapi BEGIN_OBJECT\': Mengapa Ralat Penghuraian JSON Saya Berlaku?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!