Rumah >pembangunan bahagian belakang >tutorial php >Mengapa Saya Mendapat Ralat \'Mencuba Mendapatkan Harta Bukan Objek\' Apabila Bekerja dengan JSON dalam PHP?
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!