Command Palette

Search for a command to run...

JSON nach Array in PHP: json_decode oder a Literal?

JSON nach Array in PHP: json_decode oder a Literal?

T
Toolz Team
|Aug 31, 2026|15 min lesen
Bevorzugen Sie Toolz.dev bei Google

Teil der Sammlung Datenwerkzeuge

JSON zu PHP Array

JSON in ein PHP-Array-Literal umwandeln Wählen Sie kurze [] oder Array () Syntax, Einrückung, und eine optionale Variablenbelegung, dann kopieren Sie das Ergebnis Läuft client-seitig.

Verwenden Sie die JSON zu PHP Array

Ich habe mehr PHP geschrieben als jede andere Sprache, zuerst als WordPress Plugin Entwickler und später SaaS Backends in Laravel bauen, und es gibt eine kleine lästige Pflicht, die ständig auftaucht und die ich von Hand satt hatte, Sie haben einen JSON Blob, ein Config Sample, eine API Antwort, eine Leuchte, und Sie brauchen es als PHP Array in Ihrem Quellcode Nicht zur Laufzeit dekodiert, sondern als Literal in die Datei geschrieben Klammern und Pfeile von Hand abzurechnen ist langsam, und es ist genau die Art von mechanischer Übersetzung, die ein Tool machen sollte Also habe ich eins eingebaut Toolz.dev, und das ist der Leitfaden dazu.

tl; dr: Der Toolz JSON-zu-PHP-Array-Konverter Analysiert ein JSON-Dokument und serialisiert es als PHP-Array-Wörtliches. Sie können es direkt in eine Datei einfügen. JSON-Objekte werden zu assoziativen Arrays mit =>„JSON-Arrays werden zu indizierten Arrays und Skalare werden ihren PHP-Äquivalenten zugeordnet. Wählen Sie kurz [] Oder klassisch array() Syntax, setzen Sie die Einrückung und wickeln Sie das Ergebnis optional in a ein $variable = [...]; Zuordnung. Es läuft komplett clientseitig: kein Upload, kein Signup, funktioniert offline.

Was ist ein JSON-zu-PHP-Array-Konverter?

Ein JSON-zu-PHP-Array-Konverter verwandelt ein JSON-Dokument in ein äquivalentes PHP-Array-Wörtliches Ein JSON-Objekt wird zu einem assoziativen Array, das mit dem geschrieben wird => Operator wird ein JSON-Array zu einem indizierten Array und die Skalartypen bilden direkt ab: Eine JSON-Zeichenfolge wird zu einer einfach zitierten PHP-Zeichenfolge true und false Bleib gleich null Aufenthalte null, und Zahlen behalten ihren Wert Nesting bleibt in beliebiger Tiefe erhalten, so dass ein tief strukturiertes JSON-Objekt als tief strukturiertes PHP-Array mit der gleichen Form herauskommt.

Der Grund, warum dies nützlich ist, ist, dass JSON - und PHP-Arrays dasselbe beschreiben, einen Baum aus getastelten und geordneten Werten, mit unterschiedlicher Interpunktion JSON verwendet Doppelpunkte und Zahnspangen; PHP verwendet => und Klammern Zwischen ihnen zu übersetzen ist reine Mechanik, und Mechanik ist fehleranfällig, wenn sie von Hand ausgeführt wird, insbesondere bei verschachtelten Strukturen, bei denen eine einzelne fehlplatzierte Klammer die Datei zerbricht Der Konverter macht die Übersetzung deterministisch und gibt Ihnen gültiges PHP zurück.

Es lohnt sich, sich darüber im Klaren zu sein, was das nicht ist. Das ist es nicht json_decode. PHP liest JSON zur Laufzeit perfekt, und wenn Ihre Daten als Zeichenfolge ankommen, ist die Dekodierung der richtige Schritt. Dieses Tool ist für den anderen Fall gedacht, wenn das Array im Quellcode selbst leben soll.

Warum nicht einfach json_decode verwenden?

Das ist die erste Frage, die jeder PHP-Entwickler stellt, und es ist die richtige. json_decode($string, true) Analysiert eine JSON-Zeichenfolge in ein PHP-Array, und das PHP-Handbuch dokumentiert sie als Standardmethode zum Konsumieren von JSON Wenn Ihr JSON Daten sind, die zur Laufzeit ankommen, aus einer HTTP-Anfrage, einer Warteschlange, einer Datei, die Sie lesen, dann json_decode Ist genau das, was man verwenden sollte, und kein Codegenerator gehört auch nur in die Nähe.

Der Konverter ist für eine andere Situation: wenn der JSON keine Laufzeitdaten ist, sondern etwas, das Sie zum Code verpflichten möchten Ein paar konkrete Fälle aus meiner eigenen Arbeit Ein Standardkonfigurationsarray, das mit einem Plugin ausgeliefert wird und in der Quelle lesbar und bearbeitbar sein sollte Eine Nachschlagetabelle, sagen Sie eine Karte von Ländercodes zu Namen, die Sie einmal einfügen und nie abrufen Eine Testvorrichtung, die ein Literal sein muss, damit der Test in sich abgeschlossen ist und nicht vom Lesen einer Datei abhängt Ein Seed für eine Datenbankmigration Ein Beispiel in der Dokumentation, das kopierbares PHP und nicht JSON sein muss.

In all diesen wäre das Dekodieren einer JSON-Zeichenfolge bei jeder Anfrage verschwenderisch und würde die Daten hinter einem String-Literal verbergen, wo Ihr Editor sie nicht falten kann, Ihr Linter sie nicht überprüfen kann und ein Rezensent sie nicht als PHP lesen kann Das Schreiben des Arrays in die Quelle löst das. Der Konverter ist der schnellste Weg, um von einem JSON-Sample zu diesem Literal zu gelangen.

Hier die Entscheidung in einer Tabelle.

Situation einsetzen wieso
JSON kommt zur Laufzeit als Daten an json_decode($json, true) Parsen ist die Aufgabe; Halten Sie es dynamisch
JSON ist Konfiguration, Einrichtungsgegenstände, Seeds, Beispiele JSON-zu-PHP-Array-Konverter Verpflichten Sie sich zu einem lesbaren Literal zur Quelle
Sie benötigen JSON aus einem PHP-Wert zurück json_encode($array) Die umgekehrte Richtung
Sie haben ein PHP serialize() Schnur Werkzeug unserialisieren Das ist ein völlig anderes Format

Was ist der Unterschied zwischen kurz [] und array() Syntax?

Sie erzeugen identische Arrays; nur die Klammern unterscheiden sich Die kurze Syntax verwendet [ und ] Und ist seit PHP 5.4 verfügbar, das mittlerweile alte Geschichte ist, daher ist für jede moderne Codebasis kurze Syntax die Standardeinstellung und die, nach der ich greife Der Klassiker array() Form funktioniert in jeder jemals veröffentlichten Version von PHP, was der einzige Grund ist, sich trotzdem dafür zu entscheiden: Sie zielen auf eine Laufzeit ab, die älter als PHP 5.4 ist, oder auf eine Codebasis, deren Styleguide die lange Form vorschreibt.

Mit dem Tool können Sie zwischen ihnen wechseln, ohne Ihr JSON neu zu posten. Wenn Sie also zu einem älteren Projekt beitragen, können Sie den Hausstil mit einem Klick anpassen. Mein Rat für alles Neue ist kurze Syntax und PSR-12, der moderne PHP-Codierungsstil, ist darauf geschrieben.

Wie werden Strings und Sonderzeichen gehandhabt?

Das ist der Teil, der Leute beißt, die ihren eigenen Schnellkonverter schreiben, deshalb lohnt es sich zu erklären Das Tool gibt Zeichenfolgen als PHP-Einzeldiagramm-Literale ausInside Single Quotes behandelt PHP fast jedes Zeichen wörtlich; die einzigen beiden, die etwas Besonderes sind, sind der Backslash und das einzelne Zitat selbst. Also entgeht der Konverter genau diesen beiden, ein Backslash wird zu zwei Backslashs und ein einzelnes Zitat bekommt einen vorangehenden Backslash, und alles andere lässt er in Ruhe.

Das hat eine angenehme Konsequenz Eine Newline innerhalb einer JSON-String kommt als echte Newline innerhalb der einfach zitierten PHP-String durch, die gültig ist und das Zeichen exakt beibehält Man bekommt nicht die Verstümmelung, die man hätte, wenn das Tool naiv versuchen würde, Double-Zitat-Escape-Sequenzen anzuwenden Eine JSON-String wie O'Brien wird 'O\'Brien'und einen Windows-Pfad wie C:\Users wird 'C:\\Users'Beides ist korrektes PHP. Wenn Sie jemals eine Konfigurationsdatei debuggt haben, in der ein Apostroph in einem Wert stillschweigend die Syntax gebrochen hat, werden Sie es zu schätzen wissen, dass dies für Sie erledigt wird.

Wie verwende ich den Konverter?

Der Ablauf beträgt vier Schritte Einfügen eines JSON-Objekts oder Arrays in das Eingabefeld; wenn Sie zuerst die Form der Ausgabe sehen möchten, laden Sie das Sample Wählen Sie die Array-Syntax, kurz [] oder array(). Setzen Sie die Einrückung auf 2 Leerzeichen, 4 Leerzeichen oder eine Registerkarte, um sie an Ihr Projekt anzupassen, und geben Sie optional einen Variablennamen ein, um die Ausgabe als zu umschließen $config = [...]; Mit einem nachlaufenden Semikolon, bereit zum Ablegen in eine Datei Klicken Sie dann auf Konvertieren und kopieren Sie das Ergebnis.

Wenn das JSON ungültig ist, meldet das Tool die eigene Fehlermeldung von parser' anstatt stillschweigend zu scheitern, sodass ein Streuner-Nachlaufkomma oder ein nicht zitierter Schlüssel schnell gefunden werden kann. Und da in Ihrem Browser alles ausgeführt wird, können Sie eine echte API-Antwort oder eine private Konfiguration einfügen, ohne dass sie Ihren Computer verlässt, was wichtig ist, wenn die Werte nicht etwas sind, das Sie an einen zufälligen Server senden würden. Dieses clientseitige Modell ist dasselbe hinter dem Rest der Website, beschrieben in der Datenschutz Online-Tools Führung.

Wie passt das zu den anderen JSON-Tools?

Der JSON-zu-PHP-Array-Konverter ist ein Mitglied einer kleinen Familie von JSON-Transformatoren auf der Website, und sie teilen sich denselben Parsing-Kern Wenn Sie zuerst den JSON aufräumen möchten, wird die JSON-Formater Einrücken und validieren wird Wenn Sie die gleichen Daten wie eine TypeScript-Schnittstelle anstelle von PHP benötigen, wird die JSON-zu-TypeScript-Konverter Folgert die Typen Wenn das Ziel eine Tabellenkalkulation oder eine Datenbanklast ist, wird die JSON-zu-CSV-Konverter Flacht es in Reihen ab, und die JSON-zu-YAML-Konverter Handles Konfigurationsformate, die YAML bevorzugen.

Speziell für PHP-Entwickler ist der wissenswerte Nachbar der Werkzeug unserialisierenDas PHP's eigene serialize() Format. Das ist ein anderes Biest als JSON, ein PHP-spezifisches Drahtformat, das Sie in Sitzungsdaten und einigen WordPress-Optionswerten finden, und die beiden Tools decken die beiden Arten ab, wie strukturierte Daten üblicherweise in einem PHP-Projekt angezeigt werden Wenn Sie über den Stapel hinweg arbeiten, wird die Webentwickler-Toolkit Zusammenfassung zeigt, wie diese Teile zusammenpassen und wie Entwicklerproduktivitätstools Führung deckt das breitere Set ab.

Ein funktioniertes Beispiel aus einem WordPress - und Laravel-Workflow

Lassen Sie mich das mit den beiden Stellen, die ich am meisten getroffen habe, konkret machen In einem WordPress-Plugin versenden Sie oft ein Standard-Einstellungsarray, das die Optionstabelle bei Aktivierung auslöst Während der Entwicklung beginnt diese Struktur häufig das Leben als JSON-Sample, wird vielleicht aus einer Einstellungs-Benutzeroberfläche exportiert oder beim Entwerfen des Schemas skizziert. Anstatt es von Hand zu übersetzen, füge ich das JSON in den Konverter ein, wähle kurze Syntax und 4-Space-Einrückung, um sie an den Plugin' s-Stil anzupassen defaults Als Variablennamen und zurückkommen $defaults = [ ... ]; Das fällt direkt in ein get_default_settings() Funktion. Die Tasten bleiben lesbar, ein Rezensent kann die Form im Diff sehen, und es gibt keine Laufzeitdekodierung bei jedem Seitenladen.

Die Laravel-Seite ist ähnlich, wird aber in config und seeders angezeigt Eine config-Datei gibt ein großes assoziatives Array zurück, und ich habe regelmäßig eine JSON-Version von irgendeinem Fremd-Mapping, eine Währungstabelle, eine Reihe von Feature-Flags, eine Liste von Plänen, die zu diesem Array werden muss Der Konverter macht den JSON zum Literal, ich wickle ihn in die return [ ... ]; Die Config-Datei erwartet, und der Wert ist jetzt erstklassiges PHP, mit dem das Framework caches config:cache Anstatt aus einer Zeichenfolge geparst zu werden Bei Datenbank-Seadern funktioniert der gleiche Trick: Fügen Sie den JSON Ihrer Beispielzeilen ein, erhalten Sie ein Array und füttern Sie es insert()drohen

Der Grund, warum ich mich eher auf einen Konverter als auf json_decode(file_get_contents(...)) An diesen Stellen ist es keine Faulheit, es ist so, dass das Begehen des Wörtlichen die Daten Teil der Codeüberprüfung, Teil der statischen Analyse und Teil des Versionsverlaufs in einer Form macht, die ein Mensch liest Eine JSON-Datei, die neben dem Code sitzt, ist für einen PHP-Linter unsichtbar; ein Array in der Quelle nicht. Wenn die Daten ein fester Teil der Anwendung sind und nicht in sie eingegeben werden, lohnt sich diese Sichtbarkeit für die einmalige Konvertierung.

Es gibt auch einen Dokumentationswinkel, den ich unterschätzt habe, bis ich anfing, weitere Guides zu schreiben Wenn man ein PHP-Beispiel in einem README oder einer Wissensdatenbank zeigen möchte, ist ein JSON-Blob kein kopiereinfügbares PHP, und Leser, die es greifen, treffen einen Syntaxfehler, das Durchlaufen des Konverters bedeutet zunächst, dass das Beispiel in Ihren Docs echtes, lauffähiges PHP ist, das ein Leser in eine Datei fallen lassen und Arbeit sehen kann, was eine kleine Sache ist, die leise die Qualität der Dokumentation erhöht.

Worin bestehen die wissenswerten Grenzen?

Ein paar ehrliche Kanten Die größte ist die numerische Präzision, und es ist eine Eigenschaft des JSON-Parsings im Allgemeinen und nicht dieses Werkzeug speziell Der Konverter analysiert Ihren JSON mit dem Browser's JSON-Parser, der Zahlen als doppelt präzise Floats darstellt Integrierer jenseits von ungefähr 2 bis zur 53. Potenz, sechzehnstellige Ziffern, verlieren Präzision bei der Analysezeit, bevor das Tool sie jemals sieht Wenn Sie JSON mit sehr großen ganzzahligen IDs konvertieren, behandeln Sie diese als Zeichenfolgen im JSON, um sie genau zu halten Jeder JSON.parse-basierte Konverter teilt diese Grenze; ein Werkzeug, das etwas anderes behauptet, würde liegen.

Zweitens, PHP-Array-Schlüsselzwang PHP wandelt leise einen String-Schlüssel, der wie eine ganze Zahl aussieht, in einen tatsächlichen ganzzahligen Schlüssel um Der Konverter schreibt Objektschlüssel als zitierte Zeichenfolgen, was explizit und korrekt ist, aber seien Sie sich bewusst, dass PHP selbst behandeln kann '0' und 0 Als gleiche Taste zur Laufzeit Dies ist nur für Objekte von Bedeutung, deren Tasten numerische Zeichenfolgen sind, was selten vorkommt, und das Verhalten ist PHP' s, nicht das Tool' s.

Drittens, leere Container Ein leeres JSON-Objekt {} und ein leeres JSON-Array [] Beide werden [] In PHP, weil ein PHP-Array die beiden nicht unterscheiden kann Das ist eine echte Mehrdeutigkeit in der Abbildung, keine Verknüpfung, und es gibt kein PHP-Konstrukt, das den Unterschied bewahrt.

Schließlich ist die Ausgabe ein Wert, keine Anweisung, es sei denn, man gibt einen Variablennamen an Ohne einen erhält man ein blankes Literal, was man beim Einfügen in einen vorhandenen Ausdruck wünscht; mit einem erhält man eine vollständige Zuweisung, die in einem Semikolon endet Der Variablenname wird validiert, so dass eine ungültige Kennung mit einer klaren Nachricht abgelehnt wird, anstatt gebrochenes PHP zu erzeugen.

Häufig gestellte Fragen

Was ist ein JSON-zu-PHP-Array-Konverter? Ein JSON-zu-PHP-Array-Konverter transformiert ein JSON-Dokument in das äquivalente PHP-Array-Wörtliche. JSON-Objekte werden zu assoziativen Arrays mit dem => Operator, JSON-Arrays werden zu indizierten Arrays und die Skalartypen werden ihren PHP-Gegenstücken zugeordnet, sodass Sie das Ergebnis direkt in ein Skript einfügen können.

Wie konvertiere ich JSON in ein PHP-Array? Fügen Sie Ihren JSON in das Eingabefeld ein, wählen Sie eine kurze [] oder Array () Syntax und einen Einrückungsstil, dann klicken Sie auf Konvertieren Das Tool erstellt ein PHP-Array-Literal, das Sie kopieren können, optional verpackt in eine Variablenzuweisung, wenn Sie einen Variablennamen eingeben.

Was ist der Unterschied zwischen kurzer [] und Array () Syntax? Sie erzeugen identische Arrays; nur die Klammern unterscheiden sich Kurzsyntax verwendet [] und ist seit PHP 5.4 verfügbar, während Array () die ältere Form ist, die in jeder PHP-Version funktioniert Wählen Sie Array () nur, wenn Sie eine Laufzeit unterstützen müssen, die älter als PHP 5.4 ist.

Ersetzt das json_decode in PHP? No. json_decode ($json, true) analysiert zur Laufzeit einen JSON-String in ein Array, was genau dann der Fall ist, wenn der JSON als Daten eintrifft Dieses Tool schreibt stattdessen das Array in Ihren Quellcode, was zu Konfiguration, Vorrichtungen, Seed-Daten und Beispielen passt, die in der Datei leben sollten, anstatt bei jeder Anfrage dekodiert zu werden.

Wie werden JSON-Objekte und Arrays abgebildet? Ein JSON-Objekt wird zu einem PHP-Assoziativarray, bei dem jeder Schlüssel eine einfach zitierte Zeichenfolge gefolgt von => und deren Wert ist Ein JSON-Array wird zu einem indizierten PHP-Array mit den Elementen der Reihe nach. Die Verschachtelung bleibt bis zu jeder Tiefe erhalten, genau wie in der Quelle.

Wie werden Strings und Sonderzeichen gehandhabt? Strings werden als PHP-Einzelliterale ausgegeben, so dass nur ein Backslash und ein einzelnes Zitat mit einem vorangehenden Backslash entgangen werden Jedes andere Zeichen, einschließlich einer echten Newline, wird wörtlich gehalten, was der Art und Weise entspricht, wie PHP Einzelliterstrings behandelt.

Wird mein JSON irgendwo hochgeladen? Nein. Die Konvertierung erfolgt vollständig in Ihrem Browser mit JavaScript auf Ihrem Gerät. Ihr JSON wird nie hochgeladen, protokolliert oder gespeichert und das Tool arbeitet weiterhin mit dem Netzwerk getrennt, sobald die Seite geladen wurde.

Ist der JSON-zu-PHP-Array-Konverter kostenlos? Ja. Es ist völlig kostenlos ohne Anmeldung, ohne Wasserzeichen und ohne Nutzungsobergrenze Konvertieren Sie so viele JSON-Dokumente in PHP-Arrays, wie Sie für persönliche oder kommerzielle Projekte benötigen.

Comments

0 comments

0/2000 characters

No comments yet. Be the first to share your thoughts!