JSON ke Array PHP
Tempelkan dokumen JSON untuk memperoleh array PHP dalam format yang sesuai dengan file sumber .php: sintaks array singkat ([...]), indentasi yang benar, string yang dikutip secara tepat, objek bersarang menjadi array asosiatif, serta array yang tetap terindeks. Fitur ini sangat berguna untuk menyisipkan fixture API dalam pengujian atau sebagai data awal untuk berkas konfigurasi.
Cara Mengonversi JSON ke PHP
-
1
Lampirkan JSON
Semua JSON yang valid, objek, array, dan struktur yang terletak dalam tata letak yang kompleks (deeply nested).
-
2
Pilih sintaks
Versi pendek `[...]` (untuk PHP 5.4+) atau versi panjang `array(...)` (kini jarang digunakan).
-
3
Pilih kutipan string
Tanda kutip tunggal (tanpa interpolasi dan menggunakan tanda kutip pelarian) atau tanda kutip ganda (memungkinkan interpolasi `$`, biasanya bukan hal yang diinginkan untuk data).
-
4
Salin array tersebut
Lampirkan ke dalam berkas `.php` Anda, atur ke `return`, atau balut dengan `config([...])`.
Contoh
Masukan:
{ "app": { "name": "MyApp", "debug": true, "hosts": ["h1.example.com", "h2.example.com"] } }
Hasil (sintaks singkat, tanda kutip tunggal):
[
'app' => [
'name' => 'MyApp',
'debug' => true,
'hosts' => [
'h1.example.com',
'h2.example.com',
],
],
]
Pemetaan Tipe
| JSON | PHP |
|---|---|
| string | string (dikelilingi tanda kutip tunggal) |
| bilangan bulat | int |
| angka (desimal) | float |
| boolean | true / false |
| null | null |
| array (JSON) | array terindeks |
| objek (JSON) | array asosiatif |
Kapan menggunakan array asosiatif dibandingkan array terindeks
PHP memiliki satu tipe array yang menunjukkan kedua perilaku tersebut. JSON secara jelas membedakan antara objek dan array; oleh karena itu, pemetaannya adalah sebagai berikut:
{}→ array asosiatif (['key' => value]).[]→ array terindeks ([value, value]).
Generator selalu mempertahankan perbedaan tersebut; mencampur keduanya dalam PHP merupakan hal yang sah, tetapi dapat menimbulkan kebingungan.
Perangkap khusus PHP
- Kunci berupa string numerik: PHP mengubah nilai
"42"menjadi kunci bilangan bulat42dalam sebuah array. Jika JSON Anda menggunakan string numerik sebagai kunci dan Anda memerlukan bentuk string tersebut, proses konversi bolak-balik (round-trip) untukarray_combinetidak akan mempertahankan bentuk string tersebut. - Angka bulat besar: JSON dapat menyimpan angka bulat yang lebih besar dari
PHP_INT_MAXpada versi 32-bit. Generator akan memberikan peringatan ketika hal tersebut terjadi. - UTF-8: String dalam PHP merupakan urutan byte; generator menghasilkan data dalam format UTF-8 secara harfiah. Pastikan file
.phpAnda disimpan dalam format UTF-8 tanpa BOM.
Kasus Penggunaan
- File konfigurasi: Baik Laravel maupun Symfony menggunakan konfigurasi berbasis array dalam PHP. Penggunaan konfigurasi berformat JSON ala vendor juga dapat digunakan dengan baik.
- Fixture pengujian: fixture
PHPUnitlebih bersih dalam bentuk array dibandingkan file JSON yang dimuat saat eksekusi. - Seeder: seeder basis data di Laravel umumnya dimulai dari hasil dump berformat JSON dan kemudian diubah menjadi array PHP.
Kesalahan Umum
- Mengonversi array PHP kembali menjadi JSON.
json_encodememperlakukan array asosiatif sebagai objek, sedangkan array terindeks sebagai array biasa. Jika keduanya digabungkan (['key' => 'val', 0 => 'x']), hasilnya akan berupa objek. Pertahankan array berbentuk JSON tetap dalam bentuk JSON. - Tanda kutip ganda dengan apostrof. String PHP dalam tanda kutip tunggal memerlukan escape
\'; string dalam tanda kutip ganda memerlukan escape\\", dan variabel dapat terinterpolasi secara tidak sengaja jika tidak berhati-hati. Gunakan tanda kutip tunggal untuk data. - Melupakan koma di akhir. PHP mengizinkannya sejak versi 7.3, dan hal ini membuat hasil perbandingan kode (diff) lebih rapi. Generator menambahkannya secara default.
Pertanyaan yang Sering Diajukan
Sintaks singkat ([...]) telah tersedia sejak PHP 5.4 dan merupakan pilihan yang paling sesuai untuk semua kode modern. Sintaks panjang (array(...)) hanya diperlukan untuk kode yang harus dijalankan pada PHP 5.3 atau versi sebelumnya, yakni sistem lama.
Ya. File konfigurasi Laravel merupakan array PHP biasa yang diambil dari sebuah file. Tempelkan hasil keluaran generator setelah return, lalu simpannya di config/.
String PHP yang menggunakan tanda kutip tunggal tidak melakukan interpolasi terhadap variabel maupun urutan pelarian (kecuali \' dan \\). Untuk literal data, pendekatan ini lebih cepat dan lebih aman. Tanda kutip ganda hanya diperlukan jika Anda ingin menampilkan nilai \n, \t, atau $variable di dalam string.
Tidak, komponen ini menghasilkan nilai literal berupa array. Anda dapat membungkusnya sendiri menggunakan return, const, atau properti kelas sesuai kebutuhan. Dengan mempertahankan ukuran keluaran yang kecil, komponen tersebut tetap mudah disusun (komposabel).
Alat Terkait
Generator Konfigurasi Webpack
Buat webpack.config.js untuk webpack 5 dari formulir singkat: atur entry, folder output, dan mode, lalu aktifkan TypeScript, Babel, loader CSS, HtmlWebpackPlugin, dan dev server.
Referensi Tabel ASCII
Tabel ASCII lengkap dari 0 sampai 127 dengan desimal, heksadesimal, oktal, biner, dan referensi karakter numerik HTML untuk setiap karakter, termasuk kode kontrol seperti NUL, LF, dan DEL.
Dari SQL ke NoSQL
Ubah satu pernyataan SQL SELECT menjadi kueri find() MongoDB. Memetakan kolom, WHERE (=, >, <, >=, <=, !=), AND/OR, ORDER BY, dan LIMIT. Tanpa JOIN, GROUP BY, atau agregasi.
Validator XSD
Validasi dokumen XML terhadap skema XSD dan laporkan ketidakcocokan elemen dan tipe dengan nomor baris persis.
Generator Robots.txt
Buat file robots.txt yang valid: tetapkan user-agent, cantumkan jalur Disallow dan Allow, tambahkan Crawl-delay, dan deklarasikan sitemap Anda, lalu salin hasilnya.
Generator Slug
Konversi judul atau frasa apa pun menjadi slug yang aman untuk URL: huruf kecil, dipisahkan dengan tanda hubung, tanpa aksen, opsi membuang stop word, serta kompatibel dengan Unicode.
Alat ini tersedia dalam bahasa lain
- JSON vers tableau PHP [FR]
- JSON sang mảng PHP [VI]
- JSON till PHP-array [SV]
- JSONからPHP配列へ [JA]
- JSON do tablicy PHP [PL]
- JSON a Array de PHP [ES]
- JSON naar PHP-array [NL]
- JSON para Array PHP [PT]
- JSON เป็น PHP Array [TH]
- JSON을 PHP 배열로 변환 [KO]
- تحويل JSON إلى مصفوفة PHP [AR]
- JSON zu PHP-Array [DE]
- JSON to PHP Array [EN]
- JSON in array PHP [IT]
- JSON в массив PHP [RU]
- JSON'dan PHP dizisine [TR]
- 从 JSON 到 PHP 数组 [ZH]