logo
GeekFormat

JSON zu PHP

Kostenloses Online-Tool JSON zu PHP, konvertiert JSON mit einem Klick direkt in ausführbare PHP-Klassen. Unterstützt zwei Stile ArrayObject und stdClass, generiert automatisch Namespace, typed properties (PHP 7.4+), optional readonly class (PHP 8.1+), implementiert JsonSerializable, verschachtelte Objekte automatisch in unabhängige Klassen aufgeteilt, Arrays automatisch in PHP-Array umgewandelt, lokale Ausführung im Browser ohne Download.

Ähnliche Tools

Über JSON zu PHP-Klasse und PHP-Entitätsklassenmodellierung

JSON zu PHP-Tool (JSON to PHP Converter) ist ein Utility, das JSON-Datenstrukturen automatisch in Standard-PHP-Klassencode konvertiert. Es befreit Entwickler von der repetitiven Arbeit des manuellen Schreibens von Namespace / class / public-Eigenschaften / Konstruktor, besonders geeignet für schnelles Konvertieren von Beispiel-JSON in API-Schnittstellendokumentation in PHP-Entitätsklassen, die direkt in Composer-Projekte per require eingebunden werden können.

Dieses Tool unterstützt 4 Hauptcodestile: ① ArrayObject-Stil (erweitert \ArrayObject, unterstützt Array- und Objektzugriff, gängig in Laravel-Ökosystem / Symfony Serializer); ② stdClass-Stil (erweitert \stdClass, nur Objektzugriff, Standardverhalten WordPress / json_decode); ③ readonly class-Stil (PHP 8.1+ final readonly class, nach Konstruktion unveränderlich, geeignet für DTO); ④ Laravel-Integrationsstil (implementiert Jsonable + Arrayable, funktioniert mit Eloquent API Resource). Entwickler können frei nach im Projekt verwendetem Framework wählen.

PHP-Typ-Mapping ist der Kern von JSON zu PHP. Das Tool mappt JSON-Basistypen auf PHP-Standardtypen: string mappt zu string, Ganzzahl zu int, Float zu float, Boolean zu bool, Array zu array, verschachtelte Objekte zu unabhängiger Klasse (erster Buchstabe des Feldnamens großgeschrieben), null zu ?type (nullable-Eigenschaft). Alle Eigenschaften werden mit typed properties von PHP 7.4+ deklariert, IDE kann direkt Typprüfung durchführen.

Ein weiteres differenzierendes Highlight ist 'automatisch JsonSerializable-Schnittstelle implementieren': Jede von diesem Tool generierte PHP-Klasse implementiert automatisch \JsonSerializable und generiert Methode public function jsonSerialize(): mixed { return [...] }. Das bedeutet, Sie können direkt echo json_encode($user) machen, um JSON-Zeichenkette anzuzeigen, und json_encode ruft automatisch Daten des von jsonSerialize() zurückgegebenen Arrays auf. In Laravel mit Jsonable-Schnittstelle können Sie auch direkt return response()->json($user) ohne zusätzliche Verarbeitung.

Im Gegensatz zu einigen Online-Tools, die JSON zum Server hochladen müssen zur Verarbeitung, erfolgen alle Berechnungen dieses Tools im Browser. quicktype-core wird über Web Worker geladen und ausgeführt; JSON-Analyse, Typinferenz, PHP-Code-Generierung, ZIP-Paketerstellung erfolgen lokal, senden Daten an keinen Server. Dies ist besonders wichtig für JSON mit API-Schlüsseln, Benutzervertraulichkeitsfeldern oder nicht veröffentlichten Geschäftsstrukturen; Daten werden nach Seitenschließung aus dem Speicher gelöscht.

Generierter Code muss zur Verwendung normalerweise in Composer-Projekt platziert werden. Sie müssen sicherstellen, dass PHP-Version Anforderungen in composer.json erfüllt (PHP 7.4+ unterstützt typed properties, PHP 8.1+ unterstützt readonly class), dann generierte Klassen in src-Verzeichnis kopieren, über Namespace (PSR-4) automatisch laden. Dann können Sie Daten mit json_decode($jsonString, false) oder json_decode($jsonString, true) + Deserialisierung konsumieren und die Vorteile des PHP-Typsystems nutzen.

Anwendungsfälle

  • Laravel-Backend-Entwicklung: Schnelles Konvertieren von Beispiel-JSON aus API-Schnittstellendokumentation in Eloquent Model / API Resource-Klassen, direkte Serialisierung von Responses mit integrierten Jsonable / Arrayable-Schnittstellen von Laravel
  • Symfony Serializer-Integration: Konvertieren von von Drittanbieter-APIs zurückgegebenem JSON in PHP-Klassen im ArrayObject-Stil, tiefes Objekt-Mapping und Datenvalidierung mit Symfony Serializer
  • WordPress REST API: Konvertieren von von benutzerdefinierten Endpunkten zurückgegebener JSON-Struktur in PHP-Klassen im stdClass-Stil, direkte Ausgabe mit wp_send_json(), konform zum Standardverhalten von wp_json_encode()
  • PHP 8.1+ readonly DTO: Konvertieren von JSON in final readonly class für Data Transfer Objects (DTO), nach Konstruktion unveränderlich, verhindert, dass Geschäftslogik versehentlich Antwortdaten ändert
  • Composer-Paket-Entwicklung: Konvertieren von JSON Schema in PHP-Klassen dann Veröffentlichung auf Packagist als SDK-Modellschicht, damit andere Composer-Projekte es require und wiederverwenden
  • Unit-Test-Fixtures: Konvertieren von JSON-Fixtures in PHP-Klassen dann Verwendung mit json_decode + Deserialisierung für datenbasierte Tests, Assertion strukturierter Felder
  • Datenmigrationsskripte: Konvertieren von JSON-Konfigurationsdateien in PHP-Klassen dann Verwendung für stark typisierten Zugriff in Geschäftslogik, einfacher IDE-Autovervollständigung und Typprüfung als Array-Zugriff
  • Frontend-Mock-Integration: Backend konvertiert zuerst JSON-Modelle in PHP-Klassen, Frontend erhält gleichzeitig entsprechende TypeScript-Schnittstelle / PHP-Klasse, hält Typen an beiden Enden konsistent
  • Code Review: Direktes Konvertieren von API-Response-JSON in lesbare PHP-Klassen, erleichtert Diskussion von Feldbenennung, Eigenschaftssichtbarkeit während Code Review
  • Legacy-Projekt-Refaktorisierung: Refaktorisieren von dynamischem Zugriffscode basierend auf assoziativem Array in stark typisierten Zugriff basierend auf PHP-Klasse, statische Analyse mit PHPStan / Psalm durchführen
  • PHPUnit DataProvider: Konvertieren von JSON-Testdaten in PHP-Klassen dann Injection in Testfall via DataProvider, IDE schlägt automatisch Eigenschaftsfelder vor
  • Backend-API-Integration snake_case: Backend-API gibt snake_case-Felder zurück, Frontend-PHP-System aktiviert 'in camelCase konvertieren' + ArrayObject-Stil für nahtlose Integration
  • Statische Analyse PHPStan: Generierte Klassen haben natürlich Typdeklarationen, mit phpstan analyse --level=8 Typfehler in CI abfangen
  • Lehre und Ausbildung: In PHP-Lehrszenarien Konvertieren von Beispiel-JSON in PHP-Klassen zur Demonstration objektorientierter Modellierung, Typsystem, Schnittstellenimplementierung
  • API-Gateway-Schicht: Konvertieren von von vorgelagerten Microservices zurückgegebenem JSON in PHP-Klassen zur Aggregation in Gateway-Schicht, nachgelagerte PHP-Dienste konsumieren stark typisiert über Klasseneigenschaften
  • Message Queue-Konsum: Konvertieren von von RabbitMQ / Kafka konsumierten JSON-Nachrichtenkörpern in PHP-Klassen dann Speicherung oder Weiterleitung, strikte Analyse mit JSON_THROW_ON_ERROR
  • E-Commerce SKU/SPU-Modellierung: Konvertieren von Produkt-JSON-Struktur (Multi-Spezifikation / Multi-Bild / Multi-Attribut) in PHP-Klassen, mit ArrayObject-Stil N+1-Abfrageoptimierung in Laravel durchführen
  • WebHook-Callback-Signaturprüfung: Konvertieren von JSON-Signaturprüfstruktur von Zahlungsgateways, Logistik-Callbacks in PHP-Klassen, Signaturprüfung mit hash_hmac()
  • OpenAPI-Toolchain: Konvertieren von OpenAPI 3.x-JSON-Schema in PHP-Klassen, Integration in PHP-Client-Generierungs-Workflow von Swagger Codegen / Apifox
  • Daten-ETL-Pipeline: Konvertieren von JSON aus vorgelagerten Datenquellen (MySQL-JSON-Feld / MongoDB / Elasticsearch) in PHP-Klassen dann Datenbereinigung und -speicherung

Anleitung

  1. Fügen Sie JSON-Objekt (empfohlen) oder Array in linken Editor ein, oder klicken Sie auf 'Sample', um chinesisches Beispiel zu laden (mit verschachtelten address / company / tags)
  2. Klicken Sie auf 'Settings'-Schaltfläche in der Toolbar, wählen Sie im Dialog: ① Root-Klassennamen festlegen (z. B. User) und Namespace (z. B. App\Models); ② Codestil auswählen (ArrayObject / stdClass / readonly class); ③ Code-Funktionen auswählen (typed properties / Laravel-Integration / Symfony Serializer); ④ Feldnamensstrategie auswählen (Original beibehalten / camelCase / alles kleinbuchstaben / UPPER_SNAKE)
  3. Tool konvertiert automatisch innerhalb von 400ms, rechte Seite zeigt alle generierten PHP-Klassen an (jede Klasse separate Karte, Titelleiste zeigt aktuelles Stil-Badge in Echtzeit); bei JSON-Formatfehlern wird Schaltfläche 'JSON reparieren' angezeigt
  4. Überprüfen Sie, ob generierte Klassennamen, Eigenschaftsnamen und Schnittstellen den Erwartungen entsprechen; falls Anpassung erforderlich, können Sie Schlüsselnamen des Quell-JSON ändern oder Settings erneut öffnen, um Optionen zu ändern
  5. Wenn zufrieden, können Sie auf 'Kopieren'-Schaltfläche einzelner Klasse klicken, um in IDE einzufügen, oder auf 'Download ZIP' in der Toolbar klicken, um alle Klassen mit einem Klick herunterzuladen (Verzeichnisstruktur nach Namespace-Pfad organisiert)

Funktionen

  • Zwei frei umschaltbare Codestile: ArrayObject (erweitert \ArrayObject, unterstützt Array-Zugriff $obj['key']) / stdClass (erweitert \stdClass, unterstützt Objektzugriff $obj->key), kompatibel mit verschiedenen Szenarien wie Laravel-Serialisierung, WordPress REST, Symfony Serializer
  • Vollständiges PHP-Template: generiert automatisch Namespace-Deklaration + use-Anweisungen + Klassenkopfkommentar (Copyright + Generierungszeitstempel) + Klassendefinition + öffentliche typisierte Eigenschaften (PHP 7.4+), direkt in Composer-Projekt per require einbindbar ohne manuelle Boilerplate-Ergänzung
  • Automatisch implementierte JsonSerializable-Schnittstelle: Jede generierte Klasse erstellt automatisch public function jsonSerialize(): mixed { return [...] }, direkt mit json_encode() JSON serialisieren, null zusätzlicher Boilerplate-Code
  • Optional PHP 8.1+ readonly class: Bei Aktivierung fügt generierte Klasse final readonly class hinzu, alle Eigenschaften sind readonly, nach Konstruktion unveränderlich, geeignet für Szenarien mit unveränderlichen API-Response-DTOs
  • Intelligente Typinferenz: string → string, integer → int, float → float, bool → bool, array → array, verschachtelte Objekte → unabhängige Klasse, null → ?type (nullable-Eigenschaft), keine manuelle Feldtypspezifikation erforderlich
  • Verschachtelte Klassen automatisch aufgeteilt: Verschachtelte Objekte generieren unabhängige PHP-Klassen mit erstem Buchstaben des Feldnamens großgeschrieben (z. B. address → Address), Objekte in Arrays nach Regel 's-Endung entfernen' benannt (z. B. users → User), alle verschachtelten Klassen implementieren ebenfalls JsonSerializable
  • 4 Feldnamensstrategien: Original beibehalten / snake_case zu camelCase (user_name → userName) / alles kleinbuchstaben / UPPER_SNAKE-Konstantenstil, konform zu verschiedenen Codestandards PSR-1 / Laravel / Symfony
  • Ein-Klick-Laravel-Integration: Bei Aktivierung automatisch Jsonable-, Arrayable-Schnittstellen implementiert, toArray() / toJson()-Methoden hinzugefügt, direkt als Eloquent API Resource verwendbar, mit Composer-Autoload
  • Einzelklasse kopieren + Multi-Datei-ZIP-Download: Jede PHP-Klasse hat separate 'Kopieren'-Schaltfläche, kann mit einem Klick ZIP-Paket herunterladen, organisiert nach Namespace-Verzeichnisstruktur (z. B. App/Models/User.php), entpacken und verwenden
  • Lokale Browserausführung + Verlauf: JSON-Analyse, PHP-Klassen-Generierung, ZIP-Paketerstellung über JavaScript (quicktype-core + JSZip) im Browser, Daten nicht an Server hochgeladen; integrierter localStorage-Verlauf für 200 aktuelle Einträge

Codebeispiele

PHP: Generierte Klassen mit json_encode() serialisieren

php

Von diesem Tool generierte PHP-Klassen implementieren standardmäßig JsonSerializable-Schnittstelle, geben JSON direkt mit json_encode() ohne zusätzliche Verarbeitung aus.

<?php

require_once 'vendor/autoload.php';

use App\Models\User;

// Simulieren einer von API empfangenen JSON-Zeichenkette
$jsonString = '{"id":1,"name":"Alice","email":"a****@***********","isActive":true}';

// 1) Deserialisieren in von diesem Tool generierte Klasse
$userData = json_decode($jsonString, true);
$user = new User(
    $userData['id'],
    $userData['name'],
    $userData['email'],
    $userData['isActive']
);

// 2) Stark typisierter Feldzugriff (IDE-Autovervollständigung + PHPStan-statische Prüfung)
echo $user->name;          // Alice
echo $user->email;         // a****@***********
echo $user->isActive ? 'Aktiv' : 'Inaktiv'; // Aktiv

// 3) json_encode() ruft automatisch jsonSerialize() auf, kein zusätzlicher Code erforderlich
echo json_encode($user, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);
/*
{
    "id": 1,
    "name": "Alice",
    "email": "a****@***********",
    "isActive": true
}
*/

PHP: Laravel API Resource Integrationsbeispiel

php

Nach Aktivierung der Laravel-Integration können die von diesem Tool generierten Klassen direkt als Eloquent API Resource verwendet werden, um Antworten mit toArray() / toJson() zu formatieren.

<?php

namespace App\Http\Controllers;

use App\Models\User;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;

class UserController extends Controller
{
    /**
     * GET /api/users/{id}
     */
    public function show(int $id): JsonResponse
    {
        // 1) 从数据库或外部 API 获取数据
        $userData = $this->fetchUserFromApi($id);

        // 2) 用本工具生成的 User 类包装
        $user = new User(
            $userData['id'],
            $userData['name'],
            $userData['email'],
            $userData['isActive']
        );

        // 3) 直接 return response()->json($user)
        //    Laravel 会自动调用 jsonSerialize()
        return response()->json($user);
    }

    /**
     * POST /api/users
     */
    public function store(Request $request): JsonResponse
    {
        // 4) 反向用法:把请求 JSON 反序列化为 User 类
        $user = User::fromArray($request->all());

        // 5) 用 toArray() 获取数组形式
        $payload = $user->toArray();

        // 6) 执行业务逻辑(如入库 / 调用第三方 API)
        $this->userService->create($payload);

        return response()->json([
            'message' => 'User created',
            'data' => $user,
        ], 201);
    }
}

/*
 * 对应 composer.json 依赖:
 * "require": {
 *     "php": "^8.1",
 *     "laravel/framework": "^11.0"
 * }
 */

PHP: Symfony Serializer Integrationsbeispiel

php

Die von diesem Tool im ArrayObject-Stil generierten Klassen können mit der Symfony Serializer-Komponente für tiefe Serialisierung und Deserialisierung verwendet werden, geeignet für komplexe API-Gateway-Ebenen.

<?php

namespace App\Service;

use App\Models\User;
use Symfony\Component\Serializer\SerializerInterface;
use Symfony\Component\Serializer\Normalizer\PropertyNormalizer;

class UserSerializer
{
    private SerializerInterface $serializer;

    public function __construct(SerializerInterface $serializer)
    {
        // 使用 PropertyNormalizer 处理 public 属性
        $this->serializer = $serializer;
    }

    /**
     * 将 User 对象序列化为 JSON 字符串
     */
    public function toJson(User $user): string
    {
        return $this->serializer->serialize($user, 'json');
    }

    /**
     * 将 JSON 字符串反序列化为 User 对象
     */
    public function fromJson(string $json): User
    {
        return $this->serializer->deserialize($json, User::class, 'json');
    }

    /**
     * 批量反序列化(如从 MongoDB 导出的 JSON 数组)
     */
    public function fromJsonArray(string $jsonArray): array
    {
        $users = [];
        $data = json_decode($jsonArray, true);

        foreach ($data as $item) {
            $users[] = User::fromArray($item);
        }

        return $users;
    }
}

// 使用示例
$serializer = new UserSerializer($serializerService);

$json = '{"id":1,"name":"Alice","address":{"city":"Beijing","zip":"100000"},"tags":["php","symfony"]}';

// 反序列化为本工具生成的 User 对象
$user = $serializer->fromJson($json);
echo $user->name;                  // Alice
echo $user->address->city;         // Beijing (强类型访问)
print_r($user->tags);              // ['php', 'symfony']

// 序列化回 JSON
$jsonOutput = $serializer->toJson($user);

Best Practices

Für die meisten PHP-Backend-Projekte unterstützen die im ArrayObject-Stil generierten Klassen sowohl Array-Zugriff ($obj['key']) als auch Objektzugriff ($obj->key); zusammen mit der standardmäßig implementierten JsonSerializable-Schnittstelle ruft json_encode() automatisch das von jsonSerialize() zurückgegebene Array auf. Dies ist das universellste Objektdatenträgermuster im PHP-Ökosystem, kompatibel mit fast allen Mainstream-Frameworks wie Laravel, Symfony, CodeIgniter.

Die in PHP 8.1+ eingeführte readonly class ist die beste Praxis für DTOs: Eigenschaften nach Konstruktion unveränderlich, verhindert, dass Geschäftslogik Antwortdaten versehentlich ändert; Konstruktor-Promotion macht Code prägnanter (public function __construct(public int $id, public string $name) {} eine Zeile für Eigenschaftsdeklarationen). Wir empfehlen, API-Antwort-DTOs, WebHook-Callback-Strukturen, Drittanbieter-API-Clientmodelle in den readonly class-Stil zu ändern.

Laravel-Datenbankfelder sind standardmäßig snake_case, aber PHP-Eigenschaften empfehlen camelCase. Die 'Zu camelCase konvertieren'-Strategie dieses Tools konvertiert automatisch, während jsonSerialize()-Return-Array-Schlüssel ursprüngliches snake_case beibehalten; json_encode()-Ausgabe bleibt snake_case. Dies entspricht sowohl den Laravel-Modellzugriffsgewohnheiten als auch der API-Kompatibilität.

Generierte ZIP-Pakete sind nach namespace-Pfad organisiert (z. B. App/Models/User.php). Konfigurieren Sie den autoload.psr-4-Abschnitt in composer.json, z. B.: "App\\": "src/", führen Sie dann composer dump-autoload aus. Auf diese Weise wird Composer App\Models\User automatisch src/Models/User.php zuordnen, ohne manuelles require.

Dieses Tool generiert standardmäßig typisierte Eigenschaften (PHP 7.4+), deren Eigenschaftstypen von PHPStan im --level=8-Modus vollständig abgeleitet werden können. Wir empfehlen die Integration von phpstan analyse ./src --level=8 in die CI-Pipeline, um Typfehler abzufangen. Psalm unterstützt auch PropertyTypeProvider für starke Typvalidierung.

Dieses Tool läuft vollständig lokal im Browser und lädt keine Daten hoch. Aber gewöhnen Sie sich an: ① JSON mit API-Schlüsseln / Tokens / Benutzerdatenschutz vor der Konvertierung desensibilisieren; ② sicherstellen, dass die Netzwerkverbindung getrennt ist, wenn Sie dieses Tool für große interne Geschäftsstrukturen (unveröffentlichte Schnittstellen) verwenden; ③ keine Beispieldaten mit sensiblen Informationen nach der Codegenerierung in öffentliche Repositories committen.

Verschachtelte JSON-Objekte generieren rekursiv unabhängige PHP-Klassen. Wenn JSON-Verschachtelungsebenen 6 Ebenen überschreiten (z. B. mehrfach verschachtelte Menüs, Organigramme, komplexe Geschäftsdokumente), explodiert die Anzahl generierter Klassen (N verschachtelte Klassen pro Ebene), IDE lädt langsam und Wartung schwierig. Empfehlungen: ① JSON in mehrere Module aufteilen und separat konvertieren; ② oder nach Generierung manuell zu Array-Indizierung ($user['profile']['address']['city']) anstelle von Klassenverschachtelung refaktorisieren.

JSON-Nullwerte werden standardmäßig als ?mixed (nullable mixed) abgeleitet, was ein sicherer Fallback, aber kein präziser Typ ist. Wenn der Feldtyp bekannt ist (z. B. "nickname": "" leitet string ab), geben Sie zuerst einen Beispielwert im Quell-JSON an, entfernen Sie nach der Generierung den Beispielwert und ändern Sie ihn zu einem präzisen Typ wie ?string, was die Genauigkeit der PHPStan-statischen Analyse erheblich verbessert.

Häufig gestellte Fragen

Wie konvertiere ich JSON in eine PHP-Klasse?

Fügen Sie JSON-Inhalt in den linken Eingabebereich ein, das Tool konvertiert automatisch innerhalb von 400ms; oder klicken Sie auf die Schaltfläche 'Convert' in der Toolbar. Nach der Konvertierung zeigt die rechte Seite alle generierten PHP-Klassen an, jede Klasse hat eine separate 'Kopieren'-Schaltfläche; klicken Sie auf 'Download ZIP' in der Toolbar, um alle Klassen mit einem Klick zu verpacken und herunterzuladen (einschließlich Namespace-Verzeichnisstruktur).

Welche JSON-Datenstrukturen werden unterstützt?

Unterstützt zwei Strukturen: ① JSON-Objekt (als Root-Klasse, generiert automatisch class RootClass); ② JSON-Array (erstes Objekt im Array als Root-Klassenvorlage). Alle verschachtelten Objekte werden rekursiv in unabhängige Klassen umgewandelt; Objekte in Arrays werden rekursiv in Klassen umgewandelt, die dem Array-Elementtyp entsprechen.

Was enthalten die generierten PHP-Klassen?

Jede generierte .php-Datei enthält: ① Dateikopfkommentar (Copyright + automatisch generierter Zeitstempel); ② Namespace-Deklaration; ③ use-Anweisungen (einschließlich \JsonSerializable / \ArrayAccess etc. automatisch nach Bedarf importiert); ④ Klassendefinition (ArrayObject / stdClass / readonly class nach Einstellungen); ⑤ Schnittstellenimplementierungen (JsonSerializable / Jsonable / Arrayable nach Einstellungen); ⑥ Öffentliche typisierte Eigenschaften (PHP 7.4+); ⑦ Konstruktor (Zuweisung aller Eigenschaften nach Einstellungen generiert); ⑧ Methoden jsonSerialize() / toArray() / toJson() etc. Vollständig bereit für php -l-Syntaxprüfung und require-Verwendung.

Was ist der Unterschied zwischen ArrayObject- und stdClass-Stil?

ArrayObject-Stil: Generierte Klasse erweitert \ArrayObject, unterstützt sowohl Array-Zugriff $obj['key'] als auch Objektzugriff $obj->key, gibt bei json_encode() Objekt zurück. stdClass-Stil: Generierte Klasse erweitert \stdClass, unterstützt nur Objektzugriff $obj->key, leichter aber kein direkter Array-Zugriff. Laravel/WordPress-Ökosystem verwendet standardmäßig stdClass-Stil (Standardverhalten von json_decode), Symfony Serializer verwendet standardmäßig ArrayObject-Stil.

Wird die Generierung von Laravel API Resource unterstützt?

Ja. Nach Aktivierung der Option 'Ein-Klick-Laravel-Integration' in den Einstellungen generiert das Tool automatisch implementierte Jsonable-, Arrayable-Schnittstellen, fügt Methoden toJson($options = 0) und toArray() hinzu, die generierten Klassen können direkt in Eloquent API Resource verwendet werden (wie new UserResource($user) oder $user->toArray()). Verwendet auch automatisch Illuminate\Contracts\Support\Jsonable und Illuminate\Contracts\Support\Arrayable.

Wie sieht der generierte Code im PHP 8.1 readonly class-Modus aus?

Nach Aktivierung von readonly class werden generierte PHP-Klassen deutlich vereinfacht. Zum Beispiel hat class User mit aktiviertem readonly etwa 12 Zeilen: final readonly class User implements \JsonSerializable { public function __construct(public int $id, public string $name) {} public function jsonSerialize(): array { return [...] } }. Alle Eigenschaften werden über Constructor Property Promotion als readonly deklariert, nach Konstruktion unveränderlich. Hinweis: Projekt erfordert PHP 8.1+, readonly-Felder können nur über Konstruktor zugewiesen werden.

Wie konvertiere ich snake_case-Feldnamen in camelCase?

Wählen Sie in der Gruppe 'Feldnamensstrategie' des Einstellungsdialogs den Modus 'In camelCase konvertieren', das Tool konvertiert automatisch JSON-Feldnamen von snake_case in den von PHP empfohlenen Benennungsstil. Zum Beispiel user_name → userName, created_at → createdAt, is_active → isActive. Zusätzlich bei JSON aus Laravel-Routenbindung sind Klasseneigenschaften direkt über $request->userName ohne manuelle Zwischenkonvertierung zugänglich.

Wie werden verschachtelte JSON-Objekte verarbeitet?

Das Tool erstellt automatisch unabhängige PHP-Klassen für verschachtelte Objekte. Namensregel: Verschachtelter Objektschlüssel mit erstem Buchstaben großgeschrieben als Klassenname (z. B. address → Address), Objektschlüssel in Arrays durch Entfernen der s-Endung dann erster Buchstabe großgeschrieben (z. B. users → User). Alle verschachtelten Klassen enthalten ebenfalls vollständige Felder, Konstruktor, jsonSerialize()-Methode, Namespace konsistent mit Root-Klasse, können über use App\Models\Address importiert werden.

Werden Array-Felder automatisch umgewandelt?

Ja. Array-Felder in JSON werden automatisch in PHP-array-Eigenschaften umgewandelt, Elementtyp automatisch aus erstem Array-Element abgeleitet. Zum Beispiel ["a","b","c"] → array (im Kommentar als array<string> annotiert); [{...},{...}] → array (im Kommentar als array<User> annotiert, User ist neue aus Schlüssel benannte Klasse); leeres Array [] standardmäßig array (im Kommentar als array<mixed> annotiert). PHP 8.0+ mit PHPDoc-Annotationen kann Typvorschläge in IDE erhalten.

Wie ändere ich Root-Klassennamen und Namespace?

In der oberen rechten Ecke der Toolbar befindet sich eine Settings-Schaltfläche, klicken Sie zum Öffnen des Konfigurationsdialogs, können Sie konfigurieren: ① Root-Klassenname (standardmäßig JsonRootClass); ② Namespace (standardmäßig App\Models). Nach Änderung werden alle generierten Klassennamen synchron aktualisiert, Verzeichnisstruktur im ZIP ebenfalls nach Namespace organisiert (z. B. App/Models/User.php).

Ist der Download eine einzelne .php-Datei oder ZIP-Paket?

Download ist ZIP-Paket (User.zip), enthält alle generierten PHP-Klassen, organisiert in Verzeichnisstruktur nach Namespace-Pfad. Zum Beispiel bei Namespace App\Models ist Dateistruktur im ZIP: App/Models/User.php, App/Models/Address.php, App/Models/Company.php etc. Kann direkt per unzip-Befehl oder IDE in das src-Verzeichnis des Composer-Projekts importiert werden.

Kann eine einzelne Klasse direkt in die IDE kopiert werden?

Ja. Jede generierte PHP-Klasse wird als separate Karte angezeigt, rechte obere Ecke der Karte hat 'Kopieren'-Schaltfläche, beim Klicken wird der gesamte Klassencode (einschließlich <?php + Namespace + use + Klasse + Eigenschaften + Konstruktor + Methoden) in die Zwischenablage kopiert, kann direkt in IDE wie PhpStorm / VS Code / Sublime eingefügt werden.

Wie lassen generierte Klassen die JsonSerializable-Schnittstelle implementieren?

Standardmäßig aktiviert. Alle generierten PHP-Klassen implementieren automatisch \JsonSerializable und generieren Methode public function jsonSerialize(): array { return [...] }, Rückgabe-Array in Reihenfolge der Klasseneigenschaften zusammengestellt. Sie können direkt echo json_encode($user) machen, um JSON-Zeichenkette anzuzeigen, oder in Laravel return response()->json($user).

Kann Symfony Serializer von diesem Tool generierte Klassen verwenden?

Ja. Symfony Serializer liest Daten standardmäßig im Array-Stil, gut kompatibel mit im ArrayObject-Stil generierten Klassen. Mit $serializer->serialize($user, 'json') von SerializerInterface kann direkt serialisiert werden; bei Deserialisierung mit deserialize() benötigt Klasse öffentliche Eigenschaften oder Getter. Dieses Tool generiert Stil öffentliche Eigenschaften + Konstruktorzuweisung, kann direkt mit PropertyNormalizer von Symfony Serializer verwendet werden.

Was tun bei JSON-Formatfehlern?

Das Tool erkennt automatisch JSON-Gültigkeit, bei Fehlern wird rechts rote Fehlerwarnung angezeigt und Schaltfläche 'JSON reparieren' bereitgestellt. Beim Klicken können häufige Fehler automatisch repariert werden: ① überflüssige abschließende Kommas; ② einfache Anführungszeichen durch doppelte ersetzt; ③ Anführungszeichen für Schlüssel ohne Anführungszeichen ergänzt; ④ Kommentare entfernt. Nach erfolgreicher Reparatur kann direkt konvertiert werden, um PHP-Klassen zu generieren.

Werden Daten an Server hochgeladen? Privat und sicher?

Vollständige lokale Ausführung im Browser. Alle JSON-Analyse, PHP-Klassen-Generierung, ZIP-Paketerstellung erfolgen in Ihrem Browser über JavaScript (quicktype-core + JSZip), eingegebene JSON-Daten und generierter PHP-Code werden an keinen Server hochgeladen, noch in der Cloud gespeichert oder zwischengespeichert. Sensibles JSON mit internen Schnittstellenfeldern, nicht veröffentlichten Geschäftsstrukturen, nicht öffentlichen API-Antworten kann sicher verwendet werden, wird bei Seitenschließung gelöscht.

Verursacht die Generierung eines großen JSON von 10.000 Zeilen eine Verlangsamung?

Tool hat keine explizite Zeilenbegrenzung, aber Analyse und Rendering von sehr großem JSON durch Browser werden langsamer. Empfehlungen: ① JSON aufteilen und stapelweise konvertieren; ② sich jeweils auf eine Verschachtelungsebene konzentrieren; ③ wenn Sie 100+ Klassen stapelweise generieren müssen, empfehlen wir direkte Verwendung von PHP-Model-Plugins der IDE oder Schreiben eines einfachen quicktype-CLI-Skripts.

Unterstützen generierte PHP-Klassen Versionen vor PHP 7.4?

Nicht vollständig. Von diesem Tool generierte Klassen verwenden standardmäßig typed properties von PHP 7.4+ (z. B. public int $id). Wenn Ihr Projekt noch PHP 7.0~7.3 ist, verursachen Typdeklarationen Kompatibilitätsprobleme. Empfehlungen: ① Projekt auf PHP 8.1+ aktualisieren (empfohlen, bessere Leistung und Typsystem); ② oder Typdeklarationen nach Generierung stapelweise in IDE löschen (Find & Replace `public int ` → `public `); ③ oder PHP 7.4-Kompatibilitätsmodus verwenden (PHP 7.4 ist Basislinie dieses Tools).

Fehlerbehebung

Zeigt 'Bitte JSON-Daten eingeben' oder rechte Seite leer

Linker Eingabebereich ist leer oder enthält nur Leerzeichen. Stellen Sie sicher, dass Sie gültigen JSON-Inhalt eingefügt haben, oder klicken Sie auf 'Sample', um chinesisches Beispiel zu laden, oder klicken Sie auf 'Upload', um .json / .txt-Dateien auszuwählen.

Zeigt 'Unexpected token ... in JSON an Position N'

JSON-Format ungültig. Häufige Ursachen: ① überflüssiges Komma am Ende (z. B. {"a":1,}); ② einfache Anführungszeichen anstelle von doppelten Anführungszeichen verwendet; ③ JS-Objektnotation (z. B. {key: value}) anstelle von JSON (z. B. {"key": "value"}). Klicken Sie auf die Schaltfläche 'JSON reparieren', um einige Fehler automatisch zu beheben.

Generierter Code Fehler in PHP 7.x Projekt mit 'Typed property must not be accessed before initialization'

Die von diesem Tool generierten Klassen verwenden standardmäßig PHP 7.4+ typisierte Eigenschaften (z. B. public int $id). Wenn Ihr Projekt noch PHP 7.0~7.3 verwendet, verursachen Typdeklarationen Kompatibilitätsprobleme. Lösungen: ① Projekt auf PHP 8.1+ aktualisieren (empfohlen, bessere Leistung und Typsystem); ② Typdeklarationen im IDE stapelweise entfernen (Suchen & Ersetzen `public int ` → `public `); ③ Option 'PHP 7.4 typisierte Eigenschaften' deaktivieren (nur für einige Codestile wirksam).

PHP 8.1 readonly class Fehler 'Cannot modify readonly property'

Im readonly class-Stil generierte Eigenschaften können nach der Konstruktion nicht geändert werden. Wenn Sie $user->name = 'Bob' versuchen, tritt ein Fehler auf. Lösungen: ① zum ArrayObject- oder stdClass-Stil wechseln (Eigenschaften änderbar); ② oder eine neue Instanz mit new User(...) erstellen anstatt zu ändern.

Kann Illuminate\Contracts\Support\Jsonable in Laravel-Projekt nicht finden

Der Laravel-Integrationsstil erfordert die laravel/framework-Abhängigkeit. Stellen Sie in composer.json sicher: "require": { "php": "^8.1", "laravel/framework": "^11.0" }. Führen Sie dann composer update aus, um Abhängigkeiten zu installieren. Wenn Sie Laravel nicht verwenden, wählen Sie bitte den ArrayObject- oder stdClass-Stil.

Symfony Serializer Deserialisierung fehlgeschlagen 'Cannot denormalize object'

Häufige Ursachen: ① generierte Klasse hat keine öffentlichen Eigenschaften oder Getter-Methoden (Symfony Serializer verwendet standardmäßig PropertyNormalizer); ② Klasse hat keinen parameterlosen Konstruktor, aber erforderliche Parameter. Lösungen: ① bestätigen, dass dieses Tool öffentliche Eigenschaften generiert hat; ② Objekt manuell über die statische Methode fromArray() erstellen und dann an Serializer übergeben.

Verschachtelter Objektklassenname nicht wie erwartet (z. B. categories als Categori benannt)

Das Tool verwendet die Namensregel 'Abschließendes s entfernen + großschreiben' für Objekte in Arrays; für unregelmäßige Plurale wie categories ist dies nicht benutzerfreundlich. Empfehlungen: ① Quell-JSON-Schlüssel in Singular ändern (z. B. categories → category); ② oder nach der Generierung die IDE-Umbenennungsfunktion verwenden, um die Klasse umzubenennen (alle Referenzen gleichzeitig ändern).

Verzeichnisstruktur der heruntergeladenen ZIP nach Extraktion falsch

Verzeichnisse innerhalb der ZIP werden nach namespace-Einstellung organisiert (Standard App/Models/). Bei falscher Position nach Extraktion: ① namespace-Namen ändern (z. B. zu App\Dto) und erneut herunterladen; ② Extraktionsverzeichnis mit unzip -d src/ angeben; ③ oder direkt im IDE Datei → Gesamten extrahierten Ordner öffnen.

Generierte Klassen werden nicht automatisch geladen

Composer-Projekte erfordern PSR-4-Autoload-Mapping-Konfiguration in composer.json, z. B.: "autoload": { "psr-4": { "App\\": "src/" } }. Führen Sie dann composer dump-autoload aus; Composer lädt automatisch Klassendateien nach Namespace-zu-Verzeichnis-Mapping.

Feldname ändert sich nach snake_case zu camelCase-Konvertierung

'Zu camelCase konvertieren' ändert PHP-Eigenschaftsnamen (z. B. user_name → userName), aber Return-Array-Schlüssel in der jsonSerialize()-Methode behalten das ursprüngliche snake_case bei; json_encode()-Ausgabe-JSON hat weiterhin ursprüngliche Feldnamen. Greifen Sie also auf die PHP-Eigenschaft mit $user->userName zu, die JSON-Ausgabe ist weiterhin {"user_name": "..."}. Wenn Sie auch bei der Deserialisierung camelCase-Zugriff wünschen, müssen Sie Schlüssel im Return-Array von jsonSerialize() in camelCase ändern.

Seite verzögert bei Generierung von 100+ verschachtelten Klassen

Das Tool hat keine explizite Klassenanzahlbegrenzung, aber die Browser-Rendering-Leistung für übermäßig große DOMs nimmt erheblich ab. Empfehlungen: ① JSON in mehrere unabhängige Module aufteilen und separat konvertieren; ② oder direkt integrierte IDE-Codegenerierungstools verwenden (z. B. PhpStorms JSON to PHP-Plugin); ③ Verschachtelungsebenen sollten 6 Ebenen nicht überschreiten, sonst empfehlen wir die JSON-Struktur zu refaktorisieren.

Array ist numerischer Typ, generiert aber array<int> anstelle von array<float>

Das Tool leitet den Typ anhand des ersten Elements des Arrays ab (z. B. [1, 2, 3] leitet int ab, [1.5, 2.5] leitet float ab). Wenn Sie Ganzzahlen und Gleitkommazahlen mischen (z. B. [1, 2.5]), leitet das Tool anhand des ersten Elements ab. Lösungen: ① mindestens ein Beispiel-Gleitkommaelement im Quell-JSON hinzufügen (z. B. [0.0, 1.5]); ② oder Typ in der PHPDoc-Annotation nach Generierung manuell anpassen.

Nullwert-Feld wird als ?mixed-Typ anstelle von ?string generiert

JSON-Nullwerte werden vom Tool standardmäßig als ?mixed-Typ abgeleitet (da der tatsächliche Typ nicht bestimmt werden kann). Dies ist eine sichere Praxis zur Vermeidung von Fehlbeurteilungen. Wenn der Typ bekannt ist, geben Sie diesem Feld im Quell-JSON einen Beispielwert (z. B. "field": "" leitet string ab), ändern Sie nach der Generierung den Typ zu ?string.

Nach composer dump-autoload wird Klasse immer noch nicht automatisch geladen

Mögliche Ursachen: ① namespace stimmt nicht mit Verzeichnis überein (z. B. namespace App\Models, aber Datei in src/Dto/); ② composer.json psr-4-Mapping falsch geschrieben (z. B. "App\\": "src/Dto/" sollte "App\\Dto\\": "src/Dto/" sein). Lösung: Überprüfen Sie, dass der namespace jeder .php-Datei streng dem Verzeichnispfad entspricht (Namespace-Segmente müssen Verzeichnissegmenten entsprechen, groß-/kleinschreibungsabhängig).

PHPStan meldet 'Property does not have default value'

Generierte typisierte Eigenschaften haben keine Standardwerte; PHPStan betrachtet sie im --level=8-Modus als möglicherweise nicht initialisiert. Lösungen: ① PHPStan strict rules deaktivieren; ② leere Werte im Konstruktor zuweisen (z. B. $this->tags = []); ③ readonly class-Stil verwenden (nach Konstruktor-Promotion sofort zugewiesen).

Symfony Serializer Objekt-Array-Deserialisierung fehlgeschlagen

Für Objekt-Arrays wie [{...},{...}] benötigt PropertyNormalizer Elementtyphinweise. Lösungen: ① array<User>-Typ in PHPDoc explizit angeben; ② oder mit ArrayCollection umschließen ($users = new ArrayCollection()).

Chinesische Schlüssel generieren PHP-Eigenschaftsnamen mit Sonderzeichen

Wenn das Quell-JSON chinesische Schlüssel enthält (z. B. "姓名": "Alice"), generiert das Tool eine public string $姓名-Eigenschaft; IDE kann melden, dass die Namensnennung nicht dem Standard entspricht, aber es tritt kein Fehler auf. Empfehlungen: ① JSON-Schlüssel in Englisch ändern (entspricht eher der PHP PSR-1-Namenskonvention); ② bei Beibehaltung von Chinesisch sicherstellen, dass die PHP-Dateikodierung UTF-8 ist (PHP ist standardmäßig UTF-8).

ArrayObject-Stil $obj['key'] vs $obj->key Ausgabereihenfolge inkonsistent

Array-Zugriff im ArrayObject-Stil gibt in Eigenschaftsdeklarationsreihenfolge zurück, Objektzugriff gibt in Return-Array-Reihenfolge in der jsonSerialize()-Methode zurück. Wenn beide Reihenfolgen inkonsistent sind, führt dies dazu, dass echo json_encode()-Ausgabe mit var_dump($obj) inkonsistent ist. Empfehlung: jsonSerialize()-Return-Reihenfolge konsistent mit Konstruktorparameter-Reihenfolge halten.

Numerische ID in WebHook-Callback-JSON überschreitet PHP_INT_MAX

PHPs int ist auf 64-Bit-Systemen ein 64-Bit-vorzeichenbehafteter Ganzzahlwert (Maximalwert 9223372036854775807); wenn die numerische ID in JSON diesen Bereich überschreitet (z. B. Twitter-Schneeflocken-IDs), wird sie abgeschnitten. Lösungen: ① ID als Zeichenfolgetyp empfangen ("id": "1234567890123456789"); ② mit JSON_BIGINT_AS_STRING-Flag parsen.

Glossar

namespace
In PHP 5.3+ eingeführter Namensraumm Mechanismus zur Vermeidung von Klassennamenskonflikten. Dieses Tool generiert automatisch nach vom Benutzer konfiguriertem Namespace und organisiert im ZIP nach Verzeichnis App/Models/.
class
Vorlage zur Definition von Objekten in PHP. Dieses Tool generiert Standard-PHP-class, direkt über new User(...) instanziierbar.
ArrayObject
Klasse in PHPs Standard-SPL-Bibliothek, die Schnittstellen wie ArrayAccess implementiert. Von diesem Tool im ArrayObject-Stil generierte Klassen erben von \ArrayObject und unterstützen doppelten Array- und Objektzugriffsstil.
stdClass
PHPs eingebaute generische Objektklasse; json_decode($json, false) gibt standardmäßig diesen Typ zurück. Von diesem Tool im stdClass-Stil generierte Klassen erben von \stdClass und unterstützen nur Objektzugriffsstil.
typed properties
In PHP 7.4+ eingeführte Eigenschaftstypdeklarationen (z. B. public int $id). Von diesem Tool generierte Eigenschaften haben standardmäßig Typdeklarationen; IDE und statische Analysetools können direkt Typprüfung durchführen.
readonly class
In PHP 8.1+ eingeführte schreibgeschützte Klasse; alle Eigenschaften in der Klasse sind automatisch readonly, nach Konstruktion nicht änderbar. Dieses Tool generiert im readonly-Stil final readonly class, geeignet für unveränderliche DTO-Szenarien.
JsonSerializable
In PHP 5.4+ eingeführte Schnittstelle; Objekte, die diese Schnittstelle implementieren, rufen bei json_encode() automatisch Methode jsonSerialize() auf. Alle Klassen dieses Tools implementieren automatisch diese Schnittstelle.
Jsonable (Laravel)
Contract-Schnittstelle des Laravel-Frameworks; nach Implementierung kann Objekt toJson() aufrufen, um JSON auszugeben. Laravel-Integrationsstil dieses Tools implementiert automatisch diese Schnittstelle.
Arrayable (Laravel)
Contract-Schnittstelle des Laravel-Frameworks; nach Implementierung kann Objekt toArray() aufrufen, um Array auszugeben. Laravel-Integrationsstil dieses Tools implementiert automatisch diese Schnittstelle.
Composer
Offizielles Dependency-Management-Tool von PHP. Bei Verwendung von von diesem Tool generiertem Code muss PSR-4-Autoload in composer.json konfiguriert werden (z. B. App\\: src/).
PSR-4
Von PHP-FIG spezifizierte Autoload-Norm, die Klassendateien über Namespace-zu-Verzeichnis-Mapping lädt. Von diesem Tool generiertes ZIP-Paket ist nach Namespace-Pfad organisiert, konform zur PSR-4-Norm.
Symfony Serializer
Serialisierungsframework der Symfony-Komponente. Von diesem Tool im ArrayObject-Stil generierte Klassen können mit PropertyNormalizer von Symfony Serializer für tiefe Serialisierung und Deserialisierung zusammenarbeiten.
Eloquent API Resource
API-Ressourcenklasse von Laravel Eloquent, verwendet zum Formatieren von API-Responses. Von diesem Tool im Laravel-Integrationsstil generierte Klassen können direkt als API Resource-Basisklassen verwendet werden.
composer.json
Konfigurationsdatei des Composer-Projekts. Nach Platzierung von von diesem Tool generiertem Code im src-Verzeichnis muss autoload-Abschnitt in composer.json konfiguriert und composer dump-autoload ausgeführt werden.
json_encode / json_decode
PHPs eingebaute JSON-Serialisierungs- und Deserialisierungsfunktionen. Nachdem von diesem Tool generierte Klassen JsonSerializable implementieren, ruft json_encode() automatisch Methode jsonSerialize() auf.
PHPUnit DataProvider
Datenanbietermechanismus des PHP-Testframeworks PHPUnit. Von diesem Tool generierte PHP-Klassen können als DataProvider in Testfälle injiziert werden, verbessern Effizienz beim Schreiben von Tests mit IDE-Autovervollständigung.
PHPStan
Statisches Analysetool für PHP, kann Typprüfung und Fehlererkennung auf Code durchführen. Von diesem Tool generierte Klassen können mit typed properties Eigenschaftstypen vollständig von PHPStan im Modus --level=8 inferiert werden.
Psalm
Ein weiteres statisches Analysetool für PHP, Open-Source von Vimeo. Von diesem Tool generierte Klassen können mit Psalms PropertyTypeProvider starke Typvalidierung durchführen.
Doctrine
ORM- und DBAL-Toolset im PHP-Ökosystem. Von diesem Tool generierte PHP-Klassen können als Skelett für Doctrine Entity dienen, dann manuell Annotationen wie #[ORM\Column] hinzugefügt werden.
php -l
Syntaxprüfungsanweisung in PHP-Befehlszeile. Von diesem Tool generierte Klassen können vor require im Projekt zuerst php -l User.php zur Syntaxvalidierung ausführen.
Composer dump-autoload
Befehl für Composer, um Autoload-Index neu zu generieren. Nach Platzierung von von diesem Tool generierten Klassen im src-Verzeichnis muss composer dump-autoload ausgeführt werden, um von PSR-4-Autoload erkannt zu werden.
JSON_THROW_ON_ERROR
Flag für Fehlerbehandlung von json_decode() in PHP 7.3+; bei Aktivierung wirft fehlgeschlagene JSON-Analyse JsonException. Laravel-Beispiel dieses Tools verwendet strikte Analyse.
Hash (PHP)
PHPs eingebaute Hash-Funktion, häufig verwendet für WebHook-Signaturprüfung. Von diesem Tool generierte WebHook-Callback-Klassen arbeiten mit hash_hmac() zur Signaturprüfung.

Referenztabelle JSON-Typ zu PHP-Typ-Mapping

JSON-Datentypen automatisch von Tool erkannt und Referenz des entsprechenden PHP-Typs:

JSON-WertbeispielErkennungsmethodeGenerierter PHP-TypEigenschaftsstandardwert
nullvalue === null?mixed / ?typenull
true / falsetypeof value === 'boolean'boolfalse
42typeof value === 'number' && Number.isInteger(value)int0
3.14typeof value === 'number' && !Number.isInteger(value)float0.0
"hello"typeof value === 'string'string''
[...] (leeres Array)Array.isArray(value) && value.length === 0array (PHPDoc array<mixed>)[]
["a","b"]Array.isArray(value) && typeof value[0] === 'string'array (PHPDoc array<string>)[]
[1,2,3]Array.isArray(value) && typeof value[0] === 'number'array (PHPDoc array<int>)[]
[{...},{...}]Array.isArray(value) && typeof value[0] === 'object'array (PHPDoc array<Xxx>)[]
{...} (verschachteltes Objekt)typeof value === 'object' && !Array.isArray(value)Xxx (unabhängige Klasse)new Xxx()

Vergleichstabelle 4 PHP-Codestile

4 von Tool unterstützte PHP-Klassen-Codestile; wählen Sie nach Projektanforderungen:

CodestilErweitert / ModifikatorImplementiert SchnittstelleAnwendungsfall
ArrayObject-Stilextends \ArrayObjectimplements \JsonSerializableSymfony Serializer-Ökosystem, benötigt Array-Zugriff $obj['key'], kompatibel mit PHP-Standardbibliothek
stdClass-Stilextends \stdClassimplements \JsonSerializableWordPress REST API, kompatibel mit Standardverhalten von json_decode, leichtgewichtige Objektdatenunterstützung
readonly class-Stilfinal readonly class (keine Vererbung)implements \JsonSerializablePHP 8.1+, API-Response-DTO, unveränderliche Datenübertragungsobjekte, sicherstellen, dass Daten nach Konstruktion nicht geändert werden
Laravel-Integrationsstilkeine Vererbung (Standard)implements \Jsonable, \Arrayable, \JsonSerializableLaravel Eloquent API Resource, Eloquent-Modellschicht, Controller-Response-Formatierung

Privacy & Security

Alle JSON-Analyse-, PHP-Klassen-Generierungs-, ZIP-Paketerstellungsvorgänge dieses JSON zu PHP-Tools erfolgen vollständig lokal in Ihrem Browser über JavaScript (quicktype-core + JSZip); eingegebene JSON-Daten und generierter PHP-Code werden an keinen Server hochgeladen, noch in der Cloud gespeichert, zwischengespeichert oder gespeichert. Sensibles JSON mit internen Schnittstellenfeldern, nicht veröffentlichten Geschäftsstrukturen, nicht öffentlichen API-Antworten kann sicher verwendet werden; alle Daten werden bei Seitenschließung gelöscht. Dieses Tool verwendet keine Cookies zur Benutzerverfolgung, sammelt keine E-Mail- oder Kontoinformationen, integriert keine Drittanbieter-Statistikskripte; alle Berechnungen erfolgen im Browserprozess des aktuellen Geräts. Selbst in Offline-Umgebung (z. B. getrennt oder isoliertes Intranet) funktioniert es normal, solange Seitenressourcen einmal geladen wurden.

Authoritative References