Rumah > pembangunan bahagian belakang > tutorial php > Mengapa json_decode() Throw \'Tidak boleh menggunakan objek jenis stdClass sebagai tatasusunan\'?

Mengapa json_decode() Throw \'Tidak boleh menggunakan objek jenis stdClass sebagai tatasusunan\'?

Mary-Kate Olsen
Lepaskan: 2024-11-17 08:06:03
asal
1018 orang telah melayarinya

Why Does json_decode() Throw

Ralat "Tidak boleh menggunakan objek jenis stdClass sebagai tatasusunan": A Json Decoding Conundrum

Apabila bekerja dengan data JSON menggunakan json_decode() fungsi, anda mungkin menghadapi ralat misteri yang berbunyi: "Tidak boleh menggunakan objek jenis stdClass sebagai tatasusunan". Ralat ini berpunca daripada fakta bahawa json_decode() secara lalai mengembalikan objek dan bukannya tatasusunan, walaupun data JSON yang anda nyahkod mungkin distrukturkan sebagai tatasusunan.

Untuk membetulkan isu ini dan mendayakan akses kepada elemen tatasusunan, anda boleh memanfaatkan parameter kedua fungsi json_decode(). Dengan menetapkan parameter ini kepada benar, anda mengarahkan fungsi untuk mengembalikan tatasusunan dan bukannya objek.

Sebagai contoh, pertimbangkan kod berikut:

$data = '{"context": "some value"}';
$result = json_decode($data);
Salin selepas log masuk

Dalam senario ini, $result akan menjadi objek, dan cuba mengakses sifat "konteks"nya sebagai tatasusunan, cth., $result['context'], akan mencetuskan ralat yang disebutkan di atas.

Untuk menyelesaikan ralat dan membaca nilai tatasusunan, ubah suai kod seperti berikut:

$result = json_decode($data, true);
Salin selepas log masuk

Dengan menghantar benar sebagai argumen kedua, json_decode() akan mencipta tatasusunan dan anda akan dapat mengakses elemen "konteks"nya seperti yang dijangkakan:

$context = $result['context'];
Salin selepas log masuk

Atas ialah kandungan terperinci Mengapa json_decode() Throw 'Tidak boleh menggunakan objek jenis stdClass sebagai tatasusunan'?. 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