Menyelesaikan masalah json_decode() untuk Array Creation
Apabila cuba menghuraikan data JSON ke dalam tatasusunan menggunakan json_decode(), pembangun mungkin menghadapi ralat menunjukkan bahawa objek tidak boleh digunakan sebagai tatasusunan. Artikel ini bertujuan untuk menangani isu ini, menerangkan pendekatan yang betul untuk mencipta tatasusunan daripada rentetan JSON.
Penjelasan Ralat
Ralat "Ralat maut: Tidak boleh menggunakan objek jenis stdClass sebagai tatasusunan" menandakan bahawa json_decode() telah mentafsirkan data JSON sebagai objek dan bukannya tatasusunan. Secara lalai, json_decode() mengembalikan objek stdClass, yang mempunyai sifat yang sepadan dengan kekunci objek JSON.
Penyelesaian: Menentukan Jenis Pemulangan
Untuk menyelesaikan isu ini, adalah perlu untuk menunjukkan secara eksplisit bahawa nilai pulangan yang diingini mestilah tatasusunan. Ini dicapai dengan menentukan benar sebagai hujah kedua json_decode(), seperti yang ditunjukkan di bawah:
$result = json_decode($jsondata, true);
Dengan pengubahsuaian ini, $result akan menjadi tatasusunan bersekutu, di mana kunci sepadan dengan nama sifat dalam JSON objek.
Pilihan Alternatif
Dalam senario di mana kunci integer diutamakan dan bukannya nama sifat, langkah tambahan diperlukan:
$result = array_values(json_decode($jsondata, true));
Kod ini mula-mula menyahkod data JSON menjadi tatasusunan bersekutu, kemudian menukarnya menjadi tatasusunan dengan kunci integer menggunakan array_values( ).
Mengakses Tatasusunan Elemen
Setelah data JSON berjaya dinyahkodkan menjadi tatasusunan, mengakses elemennya adalah mudah. Kod berikut menunjukkan cara untuk mengakses sifat "Result" daripada rentetan JSON:
print_r($result['Result']);
Dengan mengikut garis panduan ini, pembangun boleh mencipta tatasusunan daripada rentetan JSON dengan berkesan menggunakan json_decode(), mengelakkan ralat merawat objek sebagai tatasusunan.
Atas ialah kandungan terperinci Mengapakah `json_decode()` Mengembalikan Objek Daripada Array, dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!