Menangani Enigma: Mencipta Tatasusunan dengan json_decode()
Menghadapi ralat "Ralat maut: Tidak boleh menggunakan objek jenis stdClass sebagai tatasusunan " semasa cuba menyahkod JSON ke dalam tatasusunan menandakan salah faham biasa. json_decode() lalai untuk mencipta objek, tetapi tatasusunan boleh diperolehi dengan menyatakan hujah kedua sebagai benar.
Menyemak Semula Kod:
Kod yang disediakan di bawah menggambarkan pendekatan bermasalah:
$json_string = 'http://www.example.com/jsondata.json'; $jsondata = file_get_contents($json_string); $obj = json_decode($jsondata); print_r($obj['Result']);
The Penyelesaian:
Untuk menyelesaikan isu ini, kami hanya perlu menyediakan benar sebagai argumen kedua kepada json_decode(), dengan menyatakan keutamaan kami untuk tatasusunan bersekutu dan bukannya objek. Kod yang betul ialah:
$result = json_decode($jsondata, true);
Mengakses Nilai Tatasusunan:
Setelah anda mempunyai tatasusunan bersekutu anda, anda boleh mengakses nilainya menggunakan kurungan segi empat sama:
print_r($result['Result']);
Kunci Integer Tatasusunan:
Walau bagaimanapun, jika anda lebih suka kunci integer dan bukannya nama harta, anda boleh mencapainya dengan memanfaatkan array_values():
$result = array_values(json_decode($jsondata, true));
Pendekatan Objek:
Jika anda lebih suka mengekalkan struktur objek, anda masih boleh mengakses harta yang diingini menggunakan anak panah berganda pengendali:
print_r($obj->Result);
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyahkod JSON ke dalam Array Dengan Betul Menggunakan `json_decode()`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!