Rumah  >  Artikel  >  Java  >  \"Dijangkakan BEGIN_ARRAY tetapi BEGIN_OBJECT\": Mengapa Ralat Penghuraian JSON Saya Berlaku?

\"Dijangkakan BEGIN_ARRAY tetapi BEGIN_OBJECT\": Mengapa Ralat Penghuraian JSON Saya Berlaku?

DDD
DDDasal
2024-10-27 04:40:29893semak imbas

"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!

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