Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menukar json ke array dalam php (tiga kaedah)

Bagaimana untuk menukar json ke array dalam php (tiga kaedah)

PHPz
PHPzasal
2023-04-18 09:47:554152semak imbas

Apabila membangunkan aplikasi web atau aplikasi dengan pemisahan bahagian hadapan dan belakang, selalunya perlu menukar data JSON kepada tatasusunan untuk diproses. Sebagai bahasa yang menyokong pemprosesan data JSON, PHP menyediakan berbilang kaedah untuk mencapai keperluan ini. Berikut akan memperkenalkan tiga kaedah yang biasa digunakan dan senario penggunaannya.

Gunakan json_decode

json_decode ialah salah satu fungsi terbina dalam PHP yang boleh digunakan untuk menukar data format JSON kepada tatasusunan dalam PHP. Menggunakan json_decode adalah sangat mudah, hanya masukkan rentetan JSON yang perlu dihuraikan.

$jsonStr = '{"name": "Tom", "age": 20, "gender": "male"}';
$array = json_decode($jsonStr, true);

Parameter kedua json_decode menentukan jenis nilai pulangan Menetapkannya kepada benar di sini menunjukkan jenis tatasusunan pulangan. Jika parameter kedua tidak diluluskan, jenis objek stdClass dikembalikan. Jika JSON tidak dibentuk dengan baik, NULL akan dikembalikan.

Kaedah ini sesuai untuk situasi di mana format data JSON adalah mudah dan tahapnya tidak mendalam Walau bagaimanapun, jika data JSON adalah kompleks dan tahapnya dalam, berbilang gelung foreach perlu bersarang untuk memproses. tatasusunan, yang menjejaskan kebolehbacaan kod dan kecekapan.

Menggunakan fungsi sambungan PHP

PHP juga menyediakan fungsi sambungan json_decode_array, yang mempunyai fungsi yang sama seperti json_decode dan digunakan untuk menukar data format JSON kepada tatasusunan PHP. Tetapi tidak seperti json_decode, json_decode_array tidak perlu memasukkan parameter kedua untuk menentukan jenis nilai pulangan, tetapi secara langsung mengembalikan jenis tatasusunan.

$jsonStr = '{"name": "Tom", "age": 20, "gender": "male"}';
$array = json_decode_array($jsonStr);

Berbanding dengan json_decode, json_decode_array mempunyai prestasi yang lebih tinggi kerana ia ditulis dalam C dan boleh diproses lebih cepat daripada kod PHP. Oleh itu, apabila anda perlu memproses data format JSON dengan cekap, menggunakan json_decode_array ialah pilihan yang bijak.

Walau bagaimanapun, perlu diingat bahawa json_decode_array ialah fungsi sambungan PHP, bukan fungsi terbina dalam Anda perlu memasang pustaka sambungan yang sepadan untuk menggunakannya. Di bawah sistem Windows, anda boleh membatalkan komen extension=php_json.dll dalam php.ini untuk mendayakan pustaka sambungan Di bawah sistem Linux, anda boleh menggunakan arahan pecl untuk memasangnya.

Gunakan pakej Komposer

Selain fungsi dan sambungan PHP sendiri, kami juga boleh menggunakan komponen pihak ketiga untuk menukar JSON kepada tatasusunan. Kaedah yang diperkenalkan dalam artikel ini ialah menggunakan Komposer untuk memasang pustaka pemprosesan JSON pihak ketiga yang dipanggil JsonMachine.

// 安装 JsonMachine 库
composer require salsify/json-machine

$jsonStr = '{"name": "Tom", "age": 20, "gender": "male"}';

// 将 JSON 转化为数组
$array = json_machine($jsonStr);

Fungsi json_machine yang disediakan oleh JsonMachine boleh menerima pelbagai bentuk parameter berbeza, termasuk rentetan JSON, tatasusunan asal PHP, objek stdClass, dsb., dan hasil pulangannya ialah semua jenis tatasusunan PHP.

JsonMachine juga menyokong pemulangan data JSON dalam bentuk iterator untuk mengurangkan penggunaan memori dan meningkatkan prestasi kod.

Ringkasan

Sama ada anda menggunakan fungsi terbina dalam PHP json_decode atau fungsi lanjutan json_decode_array, atau menggunakan perpustakaan pihak ketiga JsonMachine, anda boleh memenuhi keperluan untuk menukar JSON kepada tatasusunan PHP , dan kaedah penggunaannya agak mudah. Kita boleh memilih kaedah yang berbeza mengikut keperluan kita sendiri untuk mencapai kecekapan dan kebolehbacaan kod terbaik.

Atas ialah kandungan terperinci Bagaimana untuk menukar json ke array dalam php (tiga kaedah). 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