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": "MyApp", "debug": true, "hosts": ["h1.example.com", "h2.example.com"] } }
Uitvoer (korte syntaxis, enkele aanhalingstekens):
[
'app' => [
'name' => 'MyApp',
'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
Webpack-configuratiegenerator
Maak een webpack.config.js voor webpack 5 vanuit een kort formulier: stel entry, uitvoermap en mode in en zet TypeScript, Babel, een CSS-loader, HtmlWebpackPlugin en een dev-server aan.
Telefoonnummers controleren
Controleer de structuur van telefoonnummers per land en bekijk regio, type en E.164-, internationale, nationale en RFC 3966-notatie.
SVG-golfgenerator
Genereer een vloeiende SVG-golfscheiding voor headers en footers met instelbare amplitude, frequentie, kleur en positie boven of onder. Kopieer de SVG-code.
Decimaal naar hexadecimaal converter
Voer een decimaal geheel getal in en ontvang direct de hexadecimale waarde, inclusief negatieve waarden als 64-bits tweecomplement.
Sneltoetsenoverzicht
Zoek gedocumenteerde standaardsneltoetsen voor VS Code, Chrome en Bash met GNU Readline op macOS, Windows en Linux.
JSON-editor online
Bewerk JSON lokaal in de browser, bekijk de opgemaakte structuur, formatteer of minimaliseer tekst, sorteer sleutels en download een JSON-bestand.
Tool beschikbaar in andere talen
- تحويل JSON إلى مصفوفة PHP [AR]
- JSON a Array de PHP [ES]
- JSON을 PHP 배열로 변환 [KO]
- JSON vers tableau PHP [FR]
- JSON sang mảng PHP [VI]
- JSON เป็น PHP Array [TH]
- JSON do tablicy PHP [PL]
- JSON till PHP-array [SV]
- JSON para Array PHP [PT]
- JSON ke Array PHP [ID]
- JSONからPHP配列へ [JA]
- 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]