JSON naar PHP-array
Plak een JSON-document en krijg een PHP-array-literal die is opgemaakt voor een .php-bronbestand: korte array-syntaxis ([...]), correcte inspringing, correct aangehaalde strings, geneste objecten die associatieve arrays worden en arrays die geïndexeerd blijven. Handig om API-fixtures in tests in te bedden of om configuratiebestanden te vullen.
JSON naar PHP omzetten
-
1
Plak de JSON
Elke geldige JSON: objecten, arrays, diep genest.
-
2
Kies de syntaxis
Kort `[...]` (PHP 5.4+) of lang `array(...)` (nu zelden nodig).
-
3
Kies de aanhalingstekens voor strings
Enkele aanhalingstekens (geen interpolatie, apostroffen escapen) of dubbele aanhalingstekens (staan `$`-interpolatie toe: meestal niet wat je voor data wilt).
-
4
Kopieer de array
Plak het in je `.php`-bestand, wijs het toe aan een `return` of verpak het in `config([...])`.
Voorbeeld
Invoer:
{ "app": { "name": "Hyperion", "debug": true, "hosts": ["h1.example.com", "h2.example.com"] } }
Uitvoer (korte syntaxis, enkele aanhalingstekens):
[
'app' => [
'name' => 'Hyperion',
'debug' => true,
'hosts' => [
'h1.example.com',
'h2.example.com',
],
],
]
Typetoewijzing
| JSON | PHP |
|---|---|
| string | string (enkele aanhalingstekens) |
| geheel getal | int |
| getal (decimaal) | float |
| boolean | true / false |
| null | null |
| array (JSON) | geïndexeerde array |
| object (JSON) | associatieve array |
Wanneer associatief versus geïndexeerd gebruiken
PHP heeft één arraytype met beide gedragingen. JSON maakt duidelijk onderscheid tussen object en array, dus de toewijzing is:
{}→ associatief (['key' => value]).[]→ geïndexeerd ([value, value]).
De generator behoudt altijd het onderscheid; de twee in PHP mengen mag, maar is verwarrend.
PHP-specifieke valkuilen
- Numerieke string-sleutels. PHP zet
"42"om naar de gehele sleutel42in een array. Als je JSON numerieke strings als sleutels gebruikt en je ze als strings nodig hebt, bewaart de heen-en-weerconversie viaarray_combineze niet. - Grote gehele getallen. JSON kan gehele getallen bevatten die groter zijn dan
PHP_INT_MAXop 32-bits builds. De generator waarschuwt wanneer dat kan gebeuren. - UTF-8. PHP-strings zijn bytereeksen; de generator geeft UTF-8 letterlijk uit. Zorg dat je
.php-bestand als UTF-8 zonder BOM is opgeslagen.
Toepassingen
- Configuratiebestanden. Zowel Laravel als Symfony gebruiken PHP-array-configuratie. Een JSON-configuratie in vendor-stijl overnemen werkt goed.
- Testfixtures.
PHPUnit-fixtures zijn als arrays overzichtelijker dan als JSON-bestanden die tijdens runtime worden geladen. - Seeders. Database-seeders in Laravel beginnen vaak als een JSON-dump en worden PHP-arrays.
Veelgemaakte fouten
- PHP-arrays terug omzetten naar JSON.
json_encodebehandelt een associatieve array als een object en een geïndexeerde array als een array. Als je ze mengt (['key' => 'val', 0 => 'x']), krijg je bij de uitvoer een object. Houd JSON-vormige arrays JSON-vormig. - Dubbele aanhalingstekens met apostroffen. PHP-strings met enkele aanhalingstekens moeten
\'escapen; strings met dubbele aanhalingstekens moeten\\"escapen, en variabelen worden per ongeluk geïnterpoleerd als je niet oplet. Gebruik enkele aanhalingstekens voor data. - Afsluitende komma’s vergeten. PHP staat ze toe sinds PHP 7.3 en ze maken diffs schoner. De generator voegt ze standaard toe.
Veelgestelde vragen
De korte syntaxis ([...]) is beschikbaar sinds PHP 5.4 en is de idiomatische keuze voor alle moderne code. De lange syntaxis (array(...)) is alleen nodig voor code die op PHP 5.3 of ouder moet draaien, in wezen legacy-systemen.
Ja. Laravel-configuratiebestanden zijn gewone PHP-arrays die uit een bestand worden geretourneerd. Plak de uitvoer van de generator na return en sla die op in config/.
PHP-strings met enkele aanhalingstekens interpoleren geen variabelen of escape-reeksen (behalve \' en \\). Voor dataliterals is dat sneller en veiliger. Dubbele aanhalingstekens zijn alleen van belang wanneer je \n, \t of $variable in de string wilt.
Nee, het geeft een array-literal uit. Verpak het zelf met return, const of een klasse-eigenschap indien nodig. De uitvoer klein houden maakt die goed samen te stellen.
Gerelateerde tools
ASCII-tabelreferentie
Volledige ASCII-tabel van 0 tot 127 met decimale, hexadecimale, octale en binaire waarden en HTML-numerieke referentienotatie, inclusief control codes zoals NUL, LF en DEL.
HTML-tekenreferentie
Een doorzoekbare lijst met HTML-entiteiten, hun benoemde en numerieke codes, plus kopiëren met één klik voor speciale tekens en symbolen.
Sneltoetsenoverzicht
Zoek gedocumenteerde standaardsneltoetsen voor VS Code, Chrome en Bash met GNU Readline op macOS, Windows en Linux.
E-mailvalidator
Valideer een e-mailadres: RFC 5322-syntaxcontrole, live MX-record-zoekopdracht, plus details over lokaal deel, domein en lengte. Er wordt geen e-mail verstuurd.
EditorConfig-generator
Genereer een .editorconfig-bestand met uw regels voor inspringstijl en -grootte, regeleinde, tekenset en witruimte voor consistente opmaak in alle IDE's en editors.
HTML-opmaker
Formatteer HTML lokaal in de browser met twee of vier spaties inspringing. HTML wordt niet geüpload of gevalideerd.
Tool beschikbaar in andere talen
- JSON zu PHP-Array [DE]
- JSON vers tableau PHP [FR]
- JSON till PHP-array [SV]
- JSON을 PHP 배열로 변환 [KO]
- تحويل JSON إلى مصفوفة PHP [AR]
- JSON a Array de PHP [ES]
- JSON ke Array PHP [ID]
- JSONからPHP配列へ [JA]
- JSON เป็น PHP Array [TH]
- JSON sang mảng PHP [VI]
- JSON do tablicy PHP [PL]
- JSON para Array PHP [PT]
- JSON'dan PHP dizisine [TR]
- 从 JSON 到 PHP 数组 [ZH]
- JSON to PHP Array [EN]
- JSON in array PHP [IT]
- JSON в массив PHP [RU]