Saya mencoba untuk memecahkan kode string JSON menjadi array tetapi saya mendapatkan kesalahan berikut.
Kesalahan fatal: Tidak dapat menggunakan objek tipe stdClass sebagai array di C: \ wamp \ www \ temp \ asklaila.php pada baris 6
Ini kodenya:
<?php
$json_string = 'http://www.domain.com/jsondata.json';
$jsondata = file_get_contents($json_string);
$obj = json_decode($jsondata);
print_r($obj['Result']);
?>
$ob->Result
.Jawaban:
Sesuai dokumentasi , Anda perlu menentukan apakah Anda menginginkan array asosiatif alih-alih objek
json_decode
, ini akan menjadi kode:sumber
coba ini
sumber
Ini adalah kontribusi terlambat, tetapi ada kasus yang valid untuk casting
json_decode
bersama(array)
.Pertimbangkan yang berikut ini:
Jika
$jsondata
pernah dikembalikan sebagai string kosong (seperti dalam pengalaman saya sering),json_decode
akan kembaliNULL
, menghasilkan kesalahan Peringatan: Argumen tidak valid disediakan untuk foreach () pada baris 3 . Anda dapat menambahkan satu baris kode if / then atau operator ternary, tetapi IMO lebih bersih untuk hanya mengubah baris 2 menjadi ...... kecuali jika Anda
json_decode
memasukkan jutaan array besar sekaligus, dalam hal ini seperti yang ditunjukkan oleh TCB13, kinerja dapat dipengaruhi secara negatif.sumber
Kalau-kalau Anda bekerja di php kurang dari 5,2 Anda dapat menggunakan sumber ini.
http://techblog.willshouse.com/2009/06/12/using-json_encode-and-json_decode-in-php4/
http://mike.teczno.com/JSON/JSON.phps
sumber
Menurut fungsi Dokumentasi PHP
json_decode
memiliki parameter bernama assoc yang mengubah objek yang dikembalikan menjadi array asosiatifKarena parameter assoc
FALSE
secara default, Anda harus mengatur nilai iniTRUE
untuk mengambil array.Periksa kode di bawah ini untuk contoh implikasi:
yang keluaran:
sumber
Ini juga akan mengubahnya menjadi array:
sumber
json_decode($object, true);
paratrue
tidak persis sama, secara internal jauh lebih cepat.json_decode
+ casting lebih cepat 45% daripada menjalankan kedua rasajson_decode
. Di sisi lain, keduanya sangat cepat sehingga kecuali Anda benar-benar membutuhkan ribuan decodings, perbedaannya dapat diabaikan.json_decode
mendukung argumen kedua, ketika diatur keTRUE
itu akan mengembalikanArray
bukanstdClass Object
. Periksa halaman fungsi Manualjson_decode
untuk melihat semua argumen yang didukung dan detailnya.Sebagai contoh coba ini:
sumber
Jadi, Jika menginginkan sebuah array, Anda dapat melewati argumen kedua sebagai
json_decode
fungsi 'true' .sumber
Saya harap ini akan membantu Anda
Gunakan fungsi dekode Json
Looping over JSON array dalam php
Hasil : Sistem Komputer (Jaringan)
sumber
di PHP json_decode, konversikan data json ke dalam array terkait PHP
Sebagai contoh:
$php-array= json_decode($json-data, true); print_r($php-array);
sumber
Silakan coba ini
sumber
Coba seperti ini:
sumber