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": "Hyperion", "debug": true, "hosts": ["h1.example.com", "h2.example.com"] } }
Hasil (sintaks singkat, tanda kutip tunggal):
[
'app' => [
'name' => 'Hyperion',
'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
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.
Referensi Karakter HTML
Daftar entitas HTML yang dapat dicari, beserta kode bernama dan kode numeriknya, serta fitur salin dengan satu klik untuk karakter khusus dan simbol.
Referensi pintasan papan ketik
Cari pintasan bawaan terdokumentasi untuk VS Code, Chrome, dan Bash dengan GNU Readline di macOS, Windows, dan Linux.
Pemformat HTML
Format HTML secara lokal di browser dengan inden dua atau empat spasi. HTML tidak diunggah atau divalidasi.
Generator EditorConfig
Buat file .editorconfig dengan gaya dan ukuran indentasi, akhir baris, charset, dan aturan spasi Anda untuk format yang konsisten di berbagai IDE dan editor.
Validator Email
Validasi alamat email: pemeriksaan sintaks RFC 5322, pengecekan live record MX, serta detail bagian lokal, domain, dan panjang. Tidak ada email yang dikirim.
Alat ini tersedia dalam bahasa lain
- JSONからPHP配列へ [JA]
- JSON เป็น PHP Array [TH]
- JSON sang mảng PHP [VI]
- JSON zu PHP-Array [DE]
- JSON을 PHP 배열로 변환 [KO]
- JSON do tablicy PHP [PL]
- JSON para Array PHP [PT]
- JSON a Array de PHP [ES]
- JSON till PHP-array [SV]
- تحويل JSON إلى مصفوفة PHP [AR]
- JSON vers tableau PHP [FR]
- JSON naar PHP-array [NL]
- JSON в массив PHP [RU]
- JSON'dan PHP dizisine [TR]
- 从 JSON 到 PHP 数组 [ZH]
- JSON to PHP Array [EN]
- JSON in array PHP [IT]