Rumah >pembangunan bahagian belakang >tutorial php >Mengapa Saya Mendapat Ralat \'Mencuba Mendapatkan Harta Bukan Objek\' Apabila Bekerja dengan JSON dalam PHP?

Mengapa Saya Mendapat Ralat \'Mencuba Mendapatkan Harta Bukan Objek\' Apabila Bekerja dengan JSON dalam PHP?

Linda Hamilton
Linda Hamiltonasal
2024-10-31 02:18:02937semak imbas

Why Am I Getting the

Menyelesaikan masalah Ralat "Mencuba mendapatkan harta bukan objek" dalam PHP

Apabila cuba mendapatkan data daripada titik akhir JSON, anda boleh menghadapi ralat "Mencuba untuk mendapatkan harta bukan objek". Ini berlaku apabila anda cuba mengakses sifat pembolehubah yang bukan objek.

Dalam kod yang disediakan, anda cuba mendapatkan semula pembolehubah nama_pemain daripada respons JSON. Walau bagaimanapun, respons yang diterima adalah tatasusunan yang mengandungi objek tunggal, bukan objek secara langsung. Ini boleh disahkan oleh output var_dump yang anda berikan, yang menunjukkan:

array(1) { [0]=> object(stdClass)#52 {...} }

Untuk menyelesaikan ralat ini, anda perlu terlebih dahulu mengakses elemen tatasusunan, yang merupakan objek, dan kemudian mengakses atributnya. Berikut ialah kod yang diperbetulkan:

$js = file_get_contents('http://api.convoytrucking.net/api.php?api_key=public&show=player&player_name=Mick_Gibson');
$pjs = json_decode($js);
echo $pjs[0]->player_name;  // Correctly access the object attribute

Kod yang diubah suai ini berjaya mendapatkan semula pembolehubah player_name tanpa ralat "Mencuba untuk mendapatkan sifat bukan objek". Ingat untuk menyemak struktur respons JSON anda dengan teliti untuk memastikan anda mengakses sifat dengan betul.

Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat 'Mencuba Mendapatkan Harta Bukan Objek' Apabila Bekerja dengan JSON dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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