Dengan perkembangan Internet dan kemajuan teknologi, pengasingan bahagian hadapan dan belakang telah menjadi pendekatan seni bina yang biasa. Kelebihan seni bina ini ialah bahagian hadapan dan bahagian belakang boleh dibangunkan secara berasingan, menjadikan pembangunan lebih cekap boleh melaksanakan halaman dengan lebih fleksibel dan meningkatkan pengalaman pengguna dan bahagian belakang boleh lebih menumpukan pada pemprosesan data; dan logik perniagaan. Tetapi dalam proses pembangunan memisahkan bahagian hadapan dan belakang, isu pemindahan data bahagian hadapan dan belakang menjadi lebih penting. Biasanya kami memilih untuk menggunakan format JSON untuk penghantaran data, dan pada bahagian pelayan, kami perlu menukar rentetan JSON kepada tatasusunan PHP menyediakan banyak fungsi untuk mencapai fungsi ini.
json_decode()
ialah salah satu fungsi terbina dalam PHP, yang boleh menukar rentetan berformat JSON kepada tatasusunan atau objek PHP. Fungsi ini menerima dua parameter: yang pertama ialah rentetan JSON untuk dinyahkodkan dan parameter kedua ialah parameter pilihan jenis boolean yang menentukan sama ada nilai pulangan harus ditukar kepada tatasusunan bersekutu. Fungsi json_decode()
akan mengembalikan objek apabila parameter kedua adalah palsu (lalai), dan tatasusunan bersekutu apabila parameter kedua adalah benar.
Contoh kod:
$json_str = '{"name": "Tom", "age": 18}'; // 将 JSON 字符串解码成对象 $obj = json_decode($json_str); echo $obj->name; // 输出 "Tom" echo $obj->age; // 输出 "18" // 将 JSON 字符串解码成关联数组 $arr = json_decode($json_str, true); echo $arr['name']; // 输出 "Tom" echo $arr['age']; // 输出 "18"
Jika data JSON dibaca daripada fail, kami juga Anda boleh menggunakan fungsi file_get_contents()
terbina dalam PHP untuk membaca kandungan fail, dan kemudian gunakan fungsi json_decode()
untuk menukar data JSON kepada tatasusunan. Contoh kod:
$json_file = 'test.json'; // 读取文件内容 $json_str = file_get_contents($json_file); $arr = json_decode($json_str, true);
Jika data JSON diperoleh melalui API, kami boleh menggunakan perpustakaan cURL terbina dalam PHP untuk mendapatkan data dan gunakan json_decode()
Fungsi menukar data JSON kepada tatasusunan. Contoh kod:
$url = 'https://api.example.com/get_data'; // 初始化 cURL $ch = curl_init(); // 设置 URL 和其他 cURL 选项 curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // 发送请求并处理响应 $response = curl_exec($ch); $arr = json_decode($response, true); // 关闭 cURL curl_close($ch);
Selain fungsi json_decode()
terbina dalam PHP, kami juga boleh menggunakan pihak ketiga perpustakaan untuk menukar fungsi data JSON kepada tatasusunan. Pustaka pihak ketiga yang biasa ialah:
symfony/yaml
: Komponen Symfony YAML menyediakan fungsi penukaran antara YAML dan JSON. Walaupun tujuan utamanya adalah untuk menyediakan pilihan konfigurasi untuk fail YAML, ia sebenarnya boleh menukar JSON kepada tatasusunan juga. seld/jsonlint
: seld/jsonlint ialah penghurai JSON yang boleh menukar JSON kepada tatasusunan dan melakukan semakan sintaks. Di sini kami mengambil symfony/yaml
sebagai contoh untuk memperkenalkan cara menggunakan komponen pihak ketiga untuk menukar data JSON kepada tatasusunan. Mula-mula, anda perlu memasang komponen yang berkaitan melalui Komposer:
composer require symfony/yaml
Kemudian gunakan kaedah SymfonyComponentYamlYaml::parse()
dalam kod untuk menukar data JSON kepada tatasusunan:
use Symfony\Component\Yaml\Yaml; $json_str = '{"name": "Tom", "age": 18}'; // 将 JSON 字符串转换成数组 $arr = Yaml::parse($json_str); echo $arr['name']; // 输出 "Tom" echo $arr['age']; // 输出 "18"
Ringkasan
Di atas Terdapat beberapa kaedah untuk menukar data JSON kepada tatasusunan, antaranya json_decode()
adalah yang paling biasa digunakan. Selain itu, kita juga boleh menggunakan komponen pihak ketiga untuk penukaran Kaedah khusus untuk digunakan boleh dipilih mengikut situasi dan keperluan sebenar. Tidak kira kaedah yang digunakan, kita harus memberi perhatian kepada sama ada format data JSON adalah betul dan mengendalikan situasi yang tidak normal dengan sewajarnya.
Atas ialah kandungan terperinci Bagaimana untuk menukar php json kepada array. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!