JSON 轉 PHP
暫無內容
免費線上 JSON 轉 PHP 工具,把 JSON 一鍵轉成可直接執行的 PHP 類別。支援 ArrayObject 與 stdClass 兩種風格,自動生成 namespace、typed properties(PHP 7.4+)、可選 readonly class(PHP 8.1+)、implements JsonSerializable,巢狀物件自動拆分為獨立類別,陣列自動轉為 PHP array,本機瀏覽器執行,無需上傳。
暫無內容
免費線上 JSON 轉 PHP 工具,把 JSON 一鍵轉成可直接執行的 PHP 類別。支援 ArrayObject 與 stdClass 兩種風格,自動生成 namespace、typed properties(PHP 7.4+)、可選 readonly class(PHP 8.1+)、implements JsonSerializable,巢狀物件自動拆分為獨立類別,陣列自動轉為 PHP array,本機瀏覽器執行,無需上傳。
JSON 轉 PHP 工具(JSON to PHP Converter)是一種把 JSON 資料結構自動轉換為標準 PHP 類別程式碼的實用工具。它把開發者從手寫 namespace / class / public 屬性 / 建構器的重複勞動中解放出來,特別適合把 API 介面文件中的範例 JSON 快速轉為可直接 require 進 Composer 專案的 PHP 實體類別。
本工具支援 4 種主流程式碼風格:① ArrayObject 風格(extends \ArrayObject,支援陣列存取與物件存取,Laravel / Symfony Serializer 生態常用);② stdClass 風格(extends \stdClass,僅支援物件存取,WordPress / json_decode 預設行為);③ readonly class 風格(PHP 8.1+ final readonly class,建構期後不可變,適合 DTO);④ Laravel 整合風格(implements Jsonable + Arrayable,配合 Eloquent API Resource)。開發者可根據專案使用的框架自由選擇。
PHP 類型映射是 JSON 轉 PHP 的核心。工具會把 JSON 的基本型別映射到 PHP 的標準型別:字串映射為 string,整數映射為 int,浮點數映射為 float,布林值映射為 bool,陣列映射為 array,巢狀物件映射為獨立的 class(按欄位名首字母大寫),null 映射為 ?type(可空屬性)。所有屬性使用 PHP 7.4+ 的 typed properties 宣告,IDE 可直接做型別檢查。
另一個差異化亮點是「自動實作 JsonSerializable 介面」:每個生成的 PHP 類別都自動 implements \JsonSerializable 並生成 public function jsonSerialize(): mixed { return [...] } 方法。這意味著你可以直接 echo json_encode($user) 輸出 JSON 字串,而 json_encode 會自動呼叫 jsonSerialize() 返回的陣列資料。在 Laravel 中配合 Jsonable 介面還能直接 return response()->json($user),無需任何額外處理。
與一些需要把 JSON 上傳到伺服器處理的線上工具不同,本工具的所有計算都在瀏覽器內完成。quicktype-core 透過 Web Worker 載入和執行,JSON 解析、型別推斷、PHP 程式碼生成、ZIP 打包都在本機進行,不向任何伺服器發送資料。這對於包含 API key、使用者隱私欄位或未上線業務結構的 JSON 尤為重要,關閉頁面後資料即從記憶體中清除。
生成的程式碼通常需要放到 Composer 專案中使用。你需要在 composer.json 中確保 PHP 版本滿足要求(PHP 7.4+ 支援 typed properties,PHP 8.1+ 支援 readonly class),然後把生成的 class 複製到 src 目錄下,透過 namespace 自動載入(PSR-4)。之後就可以用 json_decode($jsonString, false) 或 json_decode($jsonString, true) + 反序列化做資料消費,享受 PHP 類型系統的便利。
本工具生成的 PHP 類別預設實作 JsonSerializable 介面,配合 json_encode() 直接輸出 JSON,無需任何額外處理。
<?php
require_once 'vendor/autoload.php';
use App\Models\User;
// 模拟从 API 接收到的 JSON 字符串
$jsonString = '{"id":1,"name":"Alice","email":"alice@example.com","isActive":true}';
// 1) 反序列化为本工具生成的类
$userData = json_decode($jsonString, true);
$user = new User(
$userData['id'],
$userData['name'],
$userData['email'],
$userData['isActive']
);
// 2) 强类型访问字段(IDE 自动补全 + PHPStan 静态检查)
echo $user->name; // Alice
echo $user->email; // alice@example.com
echo $user->isActive ? '活跃' : '禁用'; // 活跃
// 3) json_encode() 自动调用 jsonSerialize(),无需任何额外代码
echo json_encode($user, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);
/*
{
"id": 1,
"name": "Alice",
"email": "a****@***********",
"isActive": true
}
*/勾選 Laravel 整合後,本工具生成的類別可直接作為 Eloquent API Resource 使用,配合 toArray() / toJson() 格式化回應。
<?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"
* }
*/本工具 ArrayObject 風格生成的類別可配合 Symfony Serializer 元件做深度序列化與反序列化,適合複雜的 API 閘道層。
<?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);對於大多數 PHP 後端專案,ArrayObject 風格生成的類別既能像陣列存取($obj['key']),也能像物件存取($obj->key),加上預設實作的 JsonSerializable 介面,json_encode() 會自動呼叫 jsonSerialize() 返回的陣列。這是 PHP 生態最通用的物件資料載體寫法,相容 Laravel、Symfony、CodeIgniter 等幾乎所有主流框架。
PHP 8.1+ 引入的 readonly class 是 DTO 的最佳實踐:建構期後屬性不可變,避免業務邏輯誤修改回應資料;建構函式提升讓程式碼更精簡(public function __construct(public int $id, public string $name) {} 一行搞定屬性宣告)。建議把 API 回應 DTO、WebHook 回呼結構、第三方 API 客戶端模型都改為 readonly class 風格。
Laravel 資料庫欄位預設是 snake_case,但 PHP 屬性推薦 camelCase。本工具的「轉 camelCase」策略可自動轉換,同時 jsonSerialize() 的 return 陣列 key 保留原 snake_case,json_encode() 輸出仍是 snake_case。這樣既符合 Laravel 模型存取習慣,又保持 API 相容性。
生成的 ZIP 包按 namespace 路徑組織(如 App/Models/User.php)。在 composer.json 配置 autoload.psr-4 段,例如:"App\\": "src/",然後執行 composer dump-autoload。這樣 Composer 會自動把 App\Models\User 映射到 src/Models/User.php,無需手動 require。
本工具預設生成 typed properties(PHP 7.4+),可被 PHPStan 在 --level=8 模式下完整推斷屬性類型。建議在 CI 流水線整合 phpstan analyse ./src --level=8,攔截型別錯誤。Psalm 同樣支援 PropertyTypeProvider 做強型別校驗。
本工具完全本機瀏覽器執行,不會上傳任何資料。但養成習慣:① 包含 API key / token / 使用者隱私的 JSON 應先脫敏再轉換;② 大型內部業務結構(未上線介面)使用本工具時確保網路斷開;③ 不要在生成程式碼後把含敏感資訊的範例資料 commit 到公開倉庫。
巢狀 JSON 物件會遞迴生成獨立 PHP 類別。如果 JSON 巢狀層級超過 6 層(如多層巢狀的選單、組織架構樹、複雜業務單據),生成的類別數量會爆炸(每層 N 個巢狀類別),IDE 載入緩慢且維護困難。建議:① 拆分 JSON 為多個模組分別轉換;② 或在生成後手動重構為陣列索引($user['profile']['address']['city'])而非類別巢狀。
JSON null 值會被預設推斷為 ?mixed(可空 mixed),這是安全兜底但不是精確類型。如確知欄位類型(如 "nickname": "" 推斷為 string),先在源 JSON 給範例值,生成後再刪除範例值並改為 ?string 等精確類型,可大幅提升 PHPStan 靜態分析的準確度。
將 JSON 內容貼到左側輸入框,工具會在 400ms 內自動轉換;或在工具列點擊「Convert」按鈕。轉換完成後右側會顯示所有生成的 PHP 類別,每個類別有獨立的「複製」按鈕;點擊工具列「Download ZIP」可一鍵打包所有類別下載(含命名空間目錄結構)。
支援兩種結構:① JSON 物件(作為根類別,自動生成 class RootClass);② JSON 陣列(陣列第一個物件作為根類別範本)。所有巢狀物件會被遞迴處理為獨立類別,陣列中的物件會被遞迴處理為陣列元素型別對應的類別。
每個生成的 .php 檔案包含:① 檔頭註解(Copyright + 自動生成時間戳);② namespace 宣告;③ use 語句(含 \JsonSerializable / \ArrayAccess 等按需自動匯入);④ class 定義(按設定可能是 ArrayObject / stdClass / readonly class);⑤ implements 介面(按設定包含 JsonSerializable / Jsonable / Arrayable);⑥ typed public 屬性(PHP 7.4+);⑦ 建構函式(按設定生成全屬性賦值);⑧ jsonSerialize() / toArray() / toJson() 等方法。完整可直接 php -l 語法檢查並 require 使用。
ArrayObject 風格:生成的 class extends \ArrayObject,既支援 $obj['key'] 陣列式存取,也支援 $obj->key 物件式存取,json_encode() 時返回物件。stdClass 風格:生成的 class extends \stdClass,僅支援 $obj->key 物件式存取,更輕量但不能直接陣列存取。Laravel / WordPress 生態預設用 stdClass 風格(json_decode 預設行為),Symfony Serializer 預設用 ArrayObject 風格。
支援。勾選設定中的「Laravel 一鍵整合」選項後,工具會自動生成 implements Jsonable、Arrayable 介面,新增 toJson($options = 0) 和 toArray() 方法,生成的類別可直接在 Eloquent API Resource 中使用(如 new UserResource($user) 或 $user->toArray())。同時自動 use Illuminate\Contracts\Support\Jsonable 和 Illuminate\Contracts\Support\Arrayable。
啟用 readonly class 後,生成的 PHP 類別會顯著精簡。例如 class User 啟用 readonly 後約 12 行:final readonly class User implements \JsonSerializable { public function __construct(public int $id, public string $name) {} public function jsonSerialize(): array { return [...] } }。所有屬性透過建構函式提升(constructor property promotion)宣告為 readonly,建構期後不可變。注意:專案需 PHP 8.1+,readonly 欄位只能透過建構函式賦值。
在 Settings 彈窗的「欄位命名策略」分組裡選擇「轉 camelCase」模式,工具會自動把 JSON 欄位名從 snake_case 轉為 PHP 推薦命名風格。例如 user_name → userName、created_at → createdAt、is_active → isActive。同時如果 JSON 來自 Laravel 路由綁定,類別屬性會自動透過 $request->userName 直接存取,無需手動中間轉換。
工具會自動為巢狀物件建立獨立的 PHP 類別。命名規則:巢狀物件 key 首字母大寫作為類別名(如 address → Address),陣列中的物件 key 移除末尾 s 後首字母大寫(如 users → User)。所有巢狀類別同樣包含完整欄位、建構函式、jsonSerialize() 方法,namespace 與根類別保持一致,可透過 use App\Models\Address 引入。
會。JSON 中的陣列欄位會自動轉換為 PHP array 屬性,元素型別根據陣列第一個元素自動推斷。例如 ["a","b","c"] → array(註解標註 array<string>);[{...},{...}] → array(註解標註 array<User>,User 為根據 key 命名的新類別);空陣列 [] 預設 array(註解標註 array<mixed>)。PHP 8.0+ 配合 PHPDoc 註解可在 IDE 中獲得型別提示。
工具列右上角有一個 Settings 按鈕,點擊後彈出設定對話框,可設定:① 根類別名(預設 JsonRootClass);② namespace(預設 App\Models)。修改後所有生成的類別名會同步更新,ZIP 內的目錄結構也會按 namespace 組織(如 App/Models/User.php)。
下載的是 ZIP 包(User.zip),內含所有生成的 PHP 類別,按 namespace 路徑組織目錄結構。例如 namespace 為 App\Models 時,ZIP 內的檔案結構為:App/Models/User.php、App/Models/Address.php、App/Models/Company.php 等。可用 unzip 指令或 IDE 直接匯入 Composer 專案 src 目錄。
可以。每個生成的 PHP 類別顯示為一個獨立的卡片,卡片右上角有「複製」按鈕,點擊後整個類別的完整程式碼(包含 <?php + namespace + use + class + 屬性 + 建構器 + 方法)會被複製到剪貼簿,可直接貼到 PhpStorm / VS Code / Sublime 等 IDE 中。
預設就啟用。所有生成的 PHP 類別自動 implements \JsonSerializable 並生成 public function jsonSerialize(): array { return [...] } 方法,return 的陣列按類別屬性順序組裝。你可以直接 echo json_encode($user) 輸出 JSON 字串,或在 Laravel 中 return response()->json($user)。
可以。Symfony Serializer 預設使用 array 風格讀取資料,對生成的 ArrayObject 風格類別相容良好。配合 SerializerInterface 的 $serializer->serialize($user, 'json') 可直接序列化,deserialize() 反序列化時需要類別有 public 屬性或 getter。本工具生成的是 public 屬性 + 建構器賦值風格,可直接配合 Symfony Serializer 的 PropertyNormalizer 使用。
工具會自動偵測 JSON 合法性,錯誤時會在右側顯示紅色錯誤提示,並提供「修復 JSON」按鈕。點擊後可自動修復常見錯誤:① 末尾多餘逗號;② 單引號替換為雙引號;③ 缺失引號的 key 補全引號;④ 註解移除。修復成功後可直接轉換生成 PHP 類別。
完全本機瀏覽器執行。所有 JSON 解析、PHP 類別生成、ZIP 打包都在你的瀏覽器內透過 JavaScript(quicktype-core + JSZip)完成,輸入的 JSON 資料和生成的 PHP 程式碼都不會被上傳到任何伺服器,也不會被記錄或快取到雲端。包含內部介面欄位、未上線業務結構、未公開 API 回應的敏感 JSON 都可以放心使用,關閉頁面即清除。
工具無顯式行數限制,但瀏覽器對超大 JSON 的解析和渲染會變慢。建議:① 拆分 JSON 後批次轉換;② 一次只關注一個巢狀層級;③ 如需批次生成 100+ 類別,建議直接使用 IDE 的 PHP 範本外掛或寫一個簡單的 quicktype CLI 指令碼處理。
不完全支援。本工具生成的類別預設使用 PHP 7.4+ 的 typed properties(如 public int $id)。如果你的專案還是 PHP 7.0~7.3,生成後會因型別宣告而報錯。建議:① 升級專案到 PHP 8.1+(推薦,效能和型別系統都更好);② 或生成後在 IDE 中批次移除型別宣告(Find & Replace `public int ` → `public `);③ 或使用 PHP 7.4 的相容模式(本工具預設 PHP 7.4 是底線)。
左側輸入框為空或只有空白字元。確保已貼上有效的 JSON 內容,或點擊「Sample」載入中文範例,或點擊「Upload」選擇 .json / .txt 檔案。
JSON 格式不合法。常見原因:① 末尾有多餘逗號(如 {"a":1,});② 用了單引號而非雙引號;③ JS 物件寫法(如 {key: value})而非 JSON(如 {"key": "value"})。點擊「修復 JSON」按鈕可自動修復部分錯誤。
本工具生成的類別預設使用 PHP 7.4+ 的 typed properties(如 public int $id)。如果你的專案還在 PHP 7.0~7.3,型別宣告會觸發相容性問題。解決方案:① 升級專案到 PHP 8.1+(推薦,效能與型別系統都更好);② 在 IDE 中批次移除型別宣告(Find & Replace `public int ` → `public `);③ 取消勾選「PHP 7.4 typed properties」選項(僅對部分程式碼風格生效)。
readonly class 風格生成的屬性在建構期後不可修改。如果你嘗試 $user->name = 'Bob' 會報錯。解決方案:① 修改為 ArrayObject 或 stdClass 風格(屬性可修改);② 或重新 new User(...) 建立一個新實例代替修改。
Laravel 整合風格需要 laravel/framework 依賴。在 composer.json 中確保有:"require": { "php": "^8.1", "laravel/framework": "^11.0" }。然後執行 composer update 安裝依賴。如果不使用 Laravel,請改選 ArrayObject 或 stdClass 風格。
常見原因:① 生成的類別沒有 public 屬性或 getter 方法(Symfony Serializer 預設用 PropertyNormalizer);② 類別缺少無參建構器但有必填參數。解決方案:① 確認本工具已生成 public 屬性;② 使用 fromArray() 靜態方法手動建構物件後再傳給 Serializer。
工具對陣列中的物件採用「移除末尾 s + 首字母大寫」的命名規則,對於 categories 等不規則複數命名不友好。建議:① 把源 JSON 的 key 改為單數(如 categories → category);② 或生成後在 IDE 中用 IDE 的 Rename 重新命名類別(同時修改所有引用)。
ZIP 內的目錄按 namespace 設定組織(預設 App/Models/)。如果解壓後位置不對,可:① 修改 namespace 名(如改為 App\Dto)重新下載;② 用 unzip -d src/ 指定解壓目錄;③ 或在 IDE 中直接 File → Open 整個解壓後的資料夾。
Composer 專案需要在 composer.json 中配置 PSR-4 自動載入映射,例如:"autoload": { "psr-4": { "App\\": "src/" } }。然後執行 composer dump-autoload,Composer 會按 namespace 到目錄的映射自動載入類別檔案。
「轉 camelCase」會改變 PHP 屬性名(如 user_name → userName),但 jsonSerialize() 方法的 return 陣列 key 仍為原 snake_case,json_encode() 輸出的 JSON 仍是原欄位名。所以存取 PHP 屬性用 $user->userName,輸出 JSON 仍是 {"user_name": "..."}。如果反序列化也希望按 camelCase 存取,需要在 jsonSerialize() 的 return 陣列中改為 camelCase key。
工具無顯式類別數限制,但瀏覽器對超大 DOM 渲染效能下降明顯。建議:① 把 JSON 拆分成幾個獨立模組分別轉換;② 或直接在 IDE 中用 IDE 自帶的程式碼生成工具(如 PhpStorm 的 JSON to PHP 外掛);③ 巢狀層級建議不超過 6 層,否則建議重構 JSON 結構。
工具按陣列首個元素推斷型別(如 [1, 2, 3] 推斷為 int,[1.5, 2.5] 推斷為 float)。如果你混合了整數和浮點數(如 [1, 2.5]),工具會按首個元素推斷。解決:① 在源 JSON 中至少新增一個範例浮點元素(如 [0.0, 1.5]);② 或生成後手動調整 PHPDoc 註解中的型別。
JSON null 值會被工具預設推斷為 ?mixed 類型(因為無法判斷實際型別)。這是安全做法,避免誤判。如確知型別,可在源 JSON 中給該欄位一個範例值(如 "field": "" 推斷為 string),生成後把類型改為 ?string 即可。
可能原因:① namespace 與目錄不匹配(如 namespace App\Models 但檔案在 src/Dto/);② composer.json 的 psr-4 映射寫錯(如 "App\\": "src/Dto/" 應為 "App\\Dto\\": "src/Dto/")。解決:檢查每個 .php 檔案的 namespace 是否與目錄路徑嚴格對應(namespace 段必須等於目錄段,區分大小寫)。
生成的 typed properties 沒有預設值,PHPStan 在 --level=8 模式下認為可能未初始化。解決:① 關閉 PHPStan 的 strict rules;② 在建構器中用空值賦值(如 $this->tags = []);③ 用 readonly class 風格(建構器提升後即被賦值)。
對 [{...},{...}] 這種物件陣列,PropertyNormalizer 需要元素型別提示。解決:① 在 PHPDoc 中明確 array<User> 類型;② 或使用 ArrayCollection 包裝($users = new ArrayCollection())。
源 JSON 中含中文 key(如 "姓名": "Alice")時,工具會生成 public string $姓名 屬性,IDE 可能提示命名不規範但不會報錯。建議:① 把 JSON key 改為英文(更符合 PHP PSR-1 命名規範);② 保留中文時確保 PHP 檔案編碼為 UTF-8(PHP 預設 UTF-8)。
ArrayObject 風格的陣列存取按屬性宣告順序返回,物件存取按 jsonSerialize() 方法中的 return 陣列順序返回。如兩者順序不一致會導致 echo json_encode() 輸出與 var_dump($obj) 不一致。建議:保持 jsonSerialize() 的 return 順序與建構器參數順序一致。
PHP 的 int 在 64 位元系統上是 64 位元有符號整數(最大值 9223372036854775807),如果 JSON 中的數字 ID 超過此範圍(如 Twitter 雪花的 ID),會被截斷。解決:① 用字串類型接收 ID("id": "1234567890123456789");② 用 JSON_BIGINT_AS_STRING 標誌解析。
工具自動推斷的 JSON 資料型別與對應的 PHP 類型對照:
| JSON 值範例 | 判斷方法 | 生成 PHP 類型 | 屬性預設值 |
|---|---|---|---|
null | value === null | ?mixed / ?type | null |
true / false | typeof value === 'boolean' | bool | false |
42 | typeof value === 'number' && Number.isInteger(value) | int | 0 |
3.14 | typeof value === 'number' && !Number.isInteger(value) | float | 0.0 |
"hello" | typeof value === 'string' | string | '' |
[...] (空陣列) | Array.isArray(value) && value.length === 0 | array (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>) | [] |
{...} (巢狀物件) | typeof value === 'object' && !Array.isArray(value) | Xxx (獨立類別) | new Xxx() |
工具支援的 4 種 PHP 類別程式碼風格,根據專案需求選擇:
| 程式碼風格 | 繼承 / 修飾 | 實作介面 | 適用場景 |
|---|---|---|---|
ArrayObject 風格 | extends \ArrayObject | implements \JsonSerializable | Symfony Serializer 生態、需要陣列式存取 $obj['key']、PHP 標準庫相容 |
stdClass 風格 | extends \stdClass | implements \JsonSerializable | WordPress REST API、json_decode 預設行為相容、輕量物件資料載體 |
readonly class 風格 | final readonly class (無繼承) | implements \JsonSerializable | PHP 8.1+、API 回應 DTO、不可變資料傳輸物件、建構期後保證資料不被修改 |
Laravel 整合風格 | 無繼承(預設) | implements \Jsonable, \Arrayable, \JsonSerializable | Laravel Eloquent API Resource、Eloquent 模型層、控制器回應格式化 |
本 JSON 轉 PHP 工具所有 JSON 解析、PHP 類別生成、ZIP 打包操作完全在你的瀏覽器本機透過 JavaScript(quicktype-core + JSZip)完成,輸入的 JSON 資料和生成的 PHP 程式碼都不會被上傳到任何伺服器,也不會被記錄、快取或儲存到雲端。包含內部介面欄位、未上線業務結構、未公開 API 回應的敏感 JSON 都可以放心使用,關閉頁面即清除全部資料。本工具不使用任何 Cookie 進行使用者追蹤,不收集郵箱或帳號資訊,不嵌入任何第三方統計指令碼,所有計算都在目前裝置的瀏覽器行程中完成。即使處於離線環境(如斷網或內網隔離環境),只要頁面已經載入過一次資源即可正常使用。