Ik heb meer PHP geschreven dan welke andere taal dan ook, eerst als WordPress plugin ontwikkelaar en later SaaS backends bouwen in Laravel, en er is één kleine klus die constant opduikt en die ik met de hand zat was Je hebt een JSON blob, een config sample, een API response, een armatuur, en je hebt het nodig als een PHP array in je broncode Niet gedecodeerd tijdens runtime, eigenlijk geschreven in het bestand als een letterlijke De haakjes en pijlen opnieuw intypen met de hand is traag, en het is precies het soort mechanische vertaling dat een tool zou moeten doen Dus heb ik er een ingebouwd Toolz.dev, en dit is de gids ervoor.
tl;dr: De Toolz JSON naar PHP array converter parseert een JSON-document en serialiseert het als een letterlijke PHP-array die je rechtstreeks in een bestand kunt plakken. JSON-objecten worden associatieve arrays met
=>, JSON arrays worden geïndexeerde arrays, en scalaires worden toegewezen aan hun PHP equivalenten Kies kort[]of klassiekarray()syntaxis, stel de inspringing in en verpak het resultaat optioneel in een$variable = [...];opdracht. Het draait volledig client-side: geen upload, geen aanmelding, werkt offline.
Wat is een JSON naar PHP array converter?
Een JSON naar PHP array converter verandert een JSON document in de equivalente PHP array letterlijke Een JSON object wordt een associatieve array geschreven met de => operator, een JSON-array wordt een geïndexeerde array en de scalaire typen worden rechtstreeks toegewezen: een JSON-string wordt een PHP-string met één citaat true en false blijf hetzelfde, null blijft null, en getallen behouden hun waarde Nesting blijft tot elke diepte behouden, dus een diep gestructureerd JSON-object komt naar voren als een diep gestructureerde PHP-array met dezelfde vorm.
De reden dat dit nuttig is, is dat JSON- en PHP-arrays hetzelfde beschrijven, een boom met ingetoetste en geordende waarden, met verschillende interpunctie. JSON gebruikt dubbele punten en beugels; PHP gebruikt => en haakjes Vertalen tussen hen is pure mechanica, en mechanica is foutgevoelig als het met de hand wordt gedaan, vooral bij geneste structuren waarbij een enkele misplaatste beugel het bestand breekt De converter doet de vertaling deterministisch en geeft u geldige PHP terug.
Het is de moeite waard om duidelijk te zijn over wat dit niet is. 't Is niet json_decode. PHP leest JSON tijdens runtime prima, en wanneer uw gegevens als een string binnenkomen, is het decoderen de juiste zet. Deze tool is voor het andere geval, wanneer u wilt dat de array in de broncode zelf leeft.
Waarom niet gewoon json_decode gebruiken?
Dit is de eerste vraag die elke PHP-ontwikkelaar stelt, en het is de juiste. json_decode($string, true) parseert een JSON-tekenreeks in een PHP-array, en de PHP-handleiding documenteert deze als de standaardmanier om JSON te consumeren. Als uw JSON gegevens zijn die op runtime aankomen, vanaf een HTTP-verzoek, een wachtrij, een bestand dat u leest, dan json_decode is precies wat je moet gebruiken, en geen enkele codegenerator hoort er in de buurt.
De converter is voor een andere situatie: wanneer de JSON geen runtime data is maar iets wat je wilt committed to code Een paar concrete cases uit mijn eigen werk Een standaard configuratie array die wordt geleverd met een plugin en leesbaar en bewerkbaar moet zijn in de bron Een opzoektabel, zeg een kaart van landcodes naar namen, die je eenmalig plakt en nooit ophaalt Een testopstelling die een letterlijke moet zijn dus de test is op zichzelf staand en is niet afhankelijk van het lezen van een bestand Een zaadje voor een databasemigratie Een voorbeeld in documentatie die moet worden copy-pasteable PHP in plaats van JSON.
In al deze gevallen zou het decoderen van een JSON-tekenreeks op elk verzoek verspillend zijn en de gegevens achter een letterlijke tekenreeks verbergen, waar uw editor deze niet kan opvouwen, uw linter deze niet kan controleren en een recensent deze niet als PHP kan lezen. Het schrijven van de array in de bron lost dat op. De converter is de snelste manier om van een JSON-sample naar die letterlijke te komen.
Hier is de beslissing in één tabel.
| betrekking | goed doen | waarom |
|---|---|---|
| JSON arriveert op runtime als gegevens | json_decode($json, true) |
Parseren is de taak; houd het dynamisch |
| JSON is config, armaturen, zaden, voorbeelden | JSON naar PHP array converter | Zet een leesbare letterlijke tekst aan de bron |
| Je hebt JSON terug nodig uit een PHP-waarde | json_encode($array) |
De omgekeerde richting |
Je hebt een PHP serialize() slier |
unserialize-tool | Dat is een heel ander formaat |
Wat is het verschil tussen kort [] en array() syntaxis?
Ze produceren identieke arrays; alleen de haakjes verschillen De korte syntaxis gebruikt [ en ] en is beschikbaar sinds PHP 5.4, dat is nu oude geschiedenis, dus voor elke moderne codebase korte syntaxis is de standaard en degene die ik bereik voor De klassieke array() formulier werkt in elke versie van PHP die ooit is uitgebracht, wat de enige reden is om er nog voor te kiezen: u richt zich op een runtime die ouder is dan PHP 5.4, of op een codebase waarvan de stijlgids de lange vorm verplicht stelt.
Met de tool kunt u tussen hen wisselen zonder uw JSON opnieuw te plakken, dus als u bijdraagt aan een ouder project, kunt u de huisstijl met één klik matchen. Mijn advies voor alles wat nieuw is, is korte syntaxis, en PSR-12, de moderne PHP-coderingsstijl, is eromheen geschreven.
Hoe wordt er omgegaan met strijkers en speciale karakters?
Dit is het deel dat mensen bijt die hun eigen quick converter schrijven, dus het is de moeite waard om uit te leggen De tool zendt strings uit als PHP single-cquoted literals Binnen enkele quotes behandelt PHP bijna elk teken letterlijk; de enige twee die speciaal zijn zijn de backslash en de single quote zelf Dus de converter ontsnapt precies aan die twee, een backslash wordt twee backslashes en een enkele quote krijgt een voorafgaande backslash, en het laat al het andere met rust.
Dat heeft een prettig gevolg Een nieuwe regel binnenin een JSON-tekenreeks komt door als een echte nieuwe regel binnenin de enkel geciteerde PHP-tekenreeks, die geldig is en het teken precies behoudt Je krijgt niet de verminking die je zou krijgen als de tool naïef probeerde escape-reeksen met dubbele aanhalingstekens toe te passen Een JSON-tekenreeks zoals O'Brien HALD 'O\'Brien', en een Windows-pad zoals C:\Users HALD 'C:\\Users', die beide correct zijn PHP. Als u ooit een configuratiebestand hebt gedebugd waarbij een apostrof in een waarde stilletjes de syntaxis heeft verbroken, zult u het op prijs stellen dat dit voor u wordt afgehandeld.
Hoe gebruik ik de converter?
De stroom bestaat uit vier stappen.Plak een JSON-object of array in het invoervak; als u eerst de vorm van de uitvoer wilt zien, laadt u het monster. Kies de array-syntaxis, kort [] of array(). Stel de inspringing in op 2 spaties, 4 spaties of een tabblad, zodat deze overeenkomt met uw project, en typ optioneel een variabele naam om de uitvoer te verpakken als $config = [...]; met een achterliggende puntkomma, klaar om in een bestand te vallen Klik vervolgens op Converteren en kopieer het resultaat.
Als de JSON ongeldig is, rapporteert de tool de parser' een eigen foutmelding in plaats van stil te falen, dus een verdwaalde achterliggende komma of een niet-geciteerde sleutel is snel te vinden. En omdat alles in uw browser draait, kunt u een echt API-antwoord of een privéconfiguratie plakken zonder dat deze uw machine verlaat, wat belangrijk is als de waarden niet iets zijn dat u naar een willekeurige server zou sturen. Dat model aan de clientzijde is hetzelfde model achter de rest van de site, beschreven in de online tools voor gegevensprivacy guide.
Hoe past dit bij de andere JSON tools?
De JSON naar PHP array converter is een lid van een kleine familie van JSON transformatoren op de site, en ze delen dezelfde parsing kern Wanneer je eerst de JSON wilt opruimen, de JSON-formatter zal inspringen en valideren Wanneer u dezelfde gegevens nodig heeft als een TypeScript-interface in plaats van PHP, zal de JSON naar TypeScript-converter leidt de typen af Wanneer het doel een spreadsheet of een databaselading is, kan de JSON naar CSV converter maakt het plat in rijen, en de JSON naar YAML-converter verwerkt configuratieformaten die de voorkeur geven aan YAML.
Vooral voor PHP-ontwikkelaars is de buurman die het weten waard is de unserialize-tool, die PHP' eigen serialize() formaat Dat is een ander beest dan JSON, een PHP-specifiek draadformaat dat je vindt in sessiegegevens en sommige WordPress-optiewaarden, en de twee tools dekken de twee manieren waarop gestructureerde gegevens gewoonlijk verschijnen in een PHP-project Als je over de stapel heen werkt, zal de Webontwikkelaar Toolkit roundup laat zien hoe deze stukken in elkaar grijpen, en de Productiviteitstools voor ontwikkelaar gids behandelt de bredere set.
Een uitgewerkt voorbeeld uit een WordPress en Laravel workflow
Laat me dit concreet maken met de twee plaatsen waar ik het het meest op druk In een WordPress-plugin verzend je vaak een standaard instellingenarray die de optietabel bij activering plaatst Tijdens de ontwikkeling begint die structuur vaak als een JSON-sample, misschien geëxporteerd vanuit een instellingen-UI of geschetst tijdens het ontwerpen van het schema. In plaats van het met de hand te vertalen, plak ik de JSON in de converter, kies ik korte syntaxis en inspringing met 4 spaties om overeen te komen met de plug-in' stijl, type defaults als de naam van de variabele, en ga terug $defaults = [ ... ]; dat valt regelrecht in een get_default_settings() functie. De toetsen blijven leesbaar, een recensent kan de vorm in het diff zien en er is geen runtime-decode bij elke pagina-belasting.
De Laravel-kant is vergelijkbaar, maar verschijnt in config en seeders. Een config-bestand retourneert een grote associatieve array, en ik heb regelmatig een JSON-versie van een aantal mapping van derden, een valutatabel, een set feature-vlaggen, een lijst met plannen, die die array moet worden. De converter verandert de JSON in de letterlijke, ik wikkel hem in de return [ ... ]; het configuratiebestand verwacht, en de waarde is nu eersteklas PHP waarmee het raamwerk cachet config:cache in plaats van geparseerd te worden uit een string Voor database seeders werkt dezelfde truc: plak de JSON van je sample rijen, haal een array, en voer deze naar insert().
De reden dat ik eerder op een converter leun dan op json_decode(file_get_contents(...)) op deze plekken is het niet luiheid, het is dat het vastleggen van de letterlijke gegevens onderdeel maakt van de codebeoordeling, onderdeel van de statische analyse, en onderdeel van de versiegeschiedenis in een vorm die een mens leest Een JSON-bestand dat naast de code zit, is onzichtbaar voor een PHP-linter; een array in de bron is dat niet. Wanneer de gegevens een vast onderdeel van de applicatie zijn in plaats van ernaar te worden ingevoerd, is die zichtbaarheid de eenmalige conversie waard.
Er is ook een documentatiehoek die ik onderschat heb tot ik meer handleidingen begon te schrijven, wanneer je een PHP-voorbeeld wilt laten zien in een README of een kennisbank, is een JSON-blob geen copy-pasteable PHP, en lezers die hem pakken raken een syntaxisfout Als je hem eerst door de converter laat lopen, betekent dit dat het voorbeeld in je documenten een echte, uitvoerbare PHP is die een lezer in een bestand kan laten vallen en werk kan zien, wat een kleinigheid is die stilletjes de kwaliteit van de documentatie verhoogt.
Wat zijn de grenzen die de moeite waard zijn om te weten?
Een paar eerlijke randen De grootste is numerieke precisie, en het is een eigenschap van JSON parsing in het algemeen in plaats van deze tool specifiek De converter parseert uw JSON met de browser' s JSON parser, die getallen vertegenwoordigt als dubbel-precisie drijft Integers voorbij ruwweg 2 naar de 53e macht, zestien-ish cijfers, verliezen precisie op het moment van ontleden, voordat de tool ze ooit ziet Als u JSON converteert met zeer grote gehele ID's, behandel die dan als tekenreeksen in de JSON om ze exact te houden Elke JSON.parse-gebaseerde converter deelt deze limiet; een tool die anders beweerde zou liegen.
Ten tweede, PHP array key coërcion PHP converteert stilletjes een string key die eruit ziet als een geheel getal in een werkelijke geheeltallige sleutel De converter schrijft objecttoetsen als geciteerde strings, die expliciet en correct is, maar wees je ervan bewust dat PHP zelf kan behandelen '0' en 0 als dezelfde toets tijdens runtime Dit is alleen van belang voor objecten waarvan de toetsen numerieke tekenreeksen zijn, wat zeldzaam is, en het gedrag PHP's is, niet de tool's.
Ten derde, lege containers Een leeg JSON object {} en een lege JSON-array [] beide worden [] in PHP, omdat een PHP-array de twee niet kan onderscheiden Dat is een echte dubbelzinnigheid in de mapping, geen snelkoppeling, en er is geen PHP-construct dat het verschil behoudt.
Ten slotte is de uitvoer een waarde, geen verklaring, tenzij u een naam van een variabele opgeeft. Zonder één krijgt u een kale letterlijke waarde, wat u wilt bij het plakken in een bestaande uitdrukking; bij één krijgt u een volledige toewijzing die eindigt op een puntkomma. De naam van de variabele wordt gevalideerd, dus een ongeldige identificatie wordt afgewezen met een duidelijk bericht in plaats van een gebroken PHP te produceren.
Veelgestelde vragen
Wat is een JSON naar PHP array converter? Een JSON naar PHP array converter transformeert een JSON document in de equivalente PHP array letterlijke JSON objecten worden associatieve arrays met de => operator, JSON arrays worden geïndexeerde arrays, en de scalaire types wijzen naar hun PHP tegenhangers, zodat u het resultaat direct in een script kunt plakken.
Hoe converteer ik JSON naar een PHP-array? Plak uw JSON in het invoervak, kies korte [] of array () syntaxis en een inspringstijl en klik vervolgens op Converteren. De tool bouwt een letterlijke PHP-array die u kunt kopiëren, optioneel verpakt in een variabele toewijzing als u een variabelenaam invoert.
Wat is het verschil tussen korte [] en array () syntaxis? Ze produceren identieke arrays; alleen de haakjes verschillen Korte syntaxis gebruikt [] en is beschikbaar sinds PHP 5.4, terwijl array () de oudere vorm is die in elke PHP-versie werkt Kies array () alleen als u een runtime ouder dan PHP 5.4 moet ondersteunen.
Vervangt dit json_decode in PHP? Nee. json_decode ($json, waar) parseert een JSON-tekenreeks in een array tijdens runtime, wat precies is wanneer de JSON als gegevens arriveert. Deze tool schrijft de array in plaats daarvan in uw broncode, wat past bij configuraties, armaturen, startgegevens en voorbeelden die in het bestand zouden moeten leven in plaats van op elk verzoek te worden gedecodeerd.
Hoe worden JSON-objecten en arrays in kaart gebracht? Een JSON-object wordt een PHP-associatieve array waarbij elke sleutel een string met één aanhalingsteken is, gevolgd door => en de waarde ervan. Een JSON-array wordt een geïndexeerde PHP-array met de elementen op volgorde. Nesting wordt tot elke diepte bewaard, precies zoals in de bron.
Hoe wordt er omgegaan met strijkers en speciale karakters? Snaren worden uitgezonden als PHP-letterlijke waarden met één citaat, dus alleen een backslash en een enkele quote worden ontsnapt met een voorafgaande backslash. Elk ander personage, inclusief een echte nieuwe regel, wordt woordelijk bewaard, wat overeenkomt met de manier waarop PHP tekenreeksen met één citaat behandelt.
Is mijn json ergens geüpload? Nee. De conversie gebeurt volledig in uw browser met behulp van JavaScript op uw apparaat Uw JSON wordt nooit geüpload, gelogd of opgeslagen, en de tool blijft werken met het netwerk verbroken zodra de pagina is geladen.
Is de JSON naar PHP array converter gratis? Ja. Het is volledig gratis zonder aanmelding, zonder watermerk en zonder gebruikspet. Converteer zoveel JSON-documenten naar PHP-arrays als u nodig heeft voor persoonlijke of commerciële projecten.



