Rumah > pembangunan bahagian belakang > tutorial php > Mengapa saya Mendapat Ralat 'Tidak boleh menggunakan objek jenis stdClass sebagai tatasusunan' Semasa Menyahkod JSON?

Mengapa saya Mendapat Ralat 'Tidak boleh menggunakan objek jenis stdClass sebagai tatasusunan' Semasa Menyahkod JSON?

Barbara Streisand
Lepaskan: 2024-12-17 11:42:25
asal
524 orang telah melayarinya

Why am I Getting the

Memahami Ralat: "Tidak boleh menggunakan objek jenis stdClass sebagai tatasusunan"

Semasa cuba menyahkod rentetan JSON, anda mungkin menghadapi ralat "Ralat maut: Tidak boleh menggunakan objek jenis stdClass sebagai tatasusunan." Ralat ini timbul apabila anda cuba merawat output fungsi json_decode() sebagai tatasusunan dan bukannya objek.

Penyelesaian: Menggunakan Fungsi json_decode() dengan Argumen Kedua Benar

Fungsi json_decode() menyediakan hujah kedua pilihan yang membolehkan anda menentukan sama ada anda mahu output dikembalikan sebagai tatasusunan atau objek. Secara lalai, json_decode() mengembalikan objek.

Untuk menyahkod rentetan JSON ke dalam tatasusunan, kita perlu menetapkan argumen kedua kepada benar. Berikut ialah kod yang diperbetulkan:

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

Mengakses Kekunci Tatasusunan

Setelah rentetan JSON telah dinyahkodkan menjadi tatasusunan, anda boleh mengakses elemennya menggunakan kekunci tatasusunan. Sebagai contoh, jika tatasusunan anda mengandungi kunci yang dipanggil "Result," anda boleh mengaksesnya seperti ini:

print_r($result['Result']);
Salin selepas log masuk

Kaedah Alternatif

Selain menggunakan json_decode () berfungsi dengan hujah kedua yang benar, terdapat kaedah lain untuk menukar objek JSON menjadi tatasusunan:

  • Menggunakan array_values(json_decode($jsondata, true)): Pendekatan ini mengembalikan tatasusunan dengan kunci integer dan bukannya nama sifat.
  • Mengakses objek sebagai objek: Anda boleh terus mengakses sifat objek yang dikembalikan oleh json_decode() seperti berikut:
print_r($obj->Result);
Salin selepas log masuk

Atas ialah kandungan terperinci Mengapa saya Mendapat Ralat 'Tidak boleh menggunakan objek jenis stdClass sebagai tatasusunan' Semasa Menyahkod JSON?. 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