Ralat Sintaks JSON: Dijangka BEGIN_ARRAY Tetapi Telah BEGIN_OBJECT
Penghuraikan JSON menghadapi ralat semasa menghuraikan data JSON, menunjukkan ketidakpadanan antara jangkaan dan struktur sebenar.
Masalah:
Mesej ralat "Dijangka BEGIN_ARRAY tetapi BEGIN_OBJECT pada baris 1 lajur 2" membayangkan bahawa penghurai menjangkakan struktur tatasusunan ( BEGIN_ARRAY) dalam data JSON, tetapi sebaliknya ia menemui struktur objek (BEGIN_OBJECT). Ketidakpadanan ini boleh menyebabkan penghurai gagal dan menimbulkan pengecualian.
URL dan Permintaan Pelayan:
Coretan kod yang disediakan melaksanakan permintaan HTTP POST ke URL dan mendapatkan semula tindak balasnya. URL dikonfigurasikan untuk mendapatkan semula data JSON daripada pelayan jauh.
Kelas Pos:
Kelas Post mentakrifkan struktur setiap objek dalam tatasusunan data yang dijangkakan. Walau bagaimanapun, seperti yang ditunjukkan oleh mesej ralat, pelayan tidak mengembalikan tatasusunan objek tetapi sebaliknya satu objek.
Penyelesaian:
Kod menjangkakan tatasusunan Siarkan objek tetapi menerima satu objek. Untuk menyelesaikan isu ini, ubah suai kod untuk mentafsirkan respons sebagai objek Pos tunggal dan bukannya tatasusunan:
<code class="java">Post post = gson.fromJson(reader, Post.class);</code>
Dengan menggantikan
<code class="java">List<Post> postsList = Arrays.asList(gson.fromJson(reader, Post[].class));</code>
dengan baris di atas, kod dengan betul mentafsirkan respons JSON sebagai objek Pos tunggal, menyelesaikan ralat "Dijangka BEGIN_ARRAY tetapi BEGIN_OBJECT".
Atas ialah kandungan terperinci Mengapakah saya mendapat ralat \'Ralat Sintaks JSON: Dijangka BEGIN_ARRAY Tetapi Adakah ralat BEGIN_OBJECT\' semasa menghuraikan data JSON?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!