Rumah > pembangunan bahagian belakang > tutorial php > Mengapakah `json_decode()` Mengembalikan Objek Daripada Array, dan Bagaimana Saya Boleh Membetulkannya?

Mengapakah `json_decode()` Mengembalikan Objek Daripada Array, dan Bagaimana Saya Boleh Membetulkannya?

Susan Sarandon
Lepaskan: 2024-12-26 21:30:19
asal
608 orang telah melayarinya

Why Does `json_decode()` Return an Object Instead of an Array, and How Can I Fix It?

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);
Salin selepas log masuk

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));
Salin selepas log masuk

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']);
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan