左側に PHP を貼り付けて 「変換」 をクリックしてください — JSON に変換しますPHP コードを貼り付け

このツールで何ができるか

型付きプロパティが詰まった PHP クラスがあって、テストや API 呼び出し、フィクスチャのために JSON ペイロードが必要な場合、配列を手書きするのは面倒です。PHP をここに貼り付ければ、すべてのプロパティを保持した妥当な JSON が返ってきます。単一クラスでも、Doctrine エンティティ のファイルでも、Laravel Eloquent モデルでも、ただの連想配列でも動作します — 結果は同じ、妥当な JSON が出力されます。

このコンバーターは実行時の json_encode() と同じ振る舞いをします。型付きプロパティ(PHP 7.4+)や readonly プロパティ(PHP 8.1+)は、通常の JSON キーとして出力されます。整数、浮動小数点、真偽値、文字列は 1 対 1 にマッピングされます。null は JSON の null になります。ネストされたオブジェクトインスタンスはネストされた JSON オブジェクトに展開されます。連想配列は JSON オブジェクトに、数値インデックスの配列は JSON 配列になります — json_encode と同じ分岐ルールです。

モダンな PHP 機能にも対応しています。バック付き enum は、その裏の値(文字列または整数)にシリアライズされます。DateTimeImmutable は ISO-8601 文字列として出力されます。Packagist から持ってきたような複数のクラスを一度に貼り付けると、トップレベルの各クラスが JSON 内の独自キーになり、ネストされた型も展開されます。メソッド、定数、静的プロパティはスキップされ、インスタンスデータのみが出力に含まれます。

使い方

3 ステップです。10 行貼り付けても、Model ファイル全体を貼り付けても、同じように動きます。

1

PHP を貼り付ける(またはサンプルを試す)

左側のエディタに PHP をそのまま貼り付けてください。クラス定義new でのインスタンス化連想配列複数クラス — どれでも大丈夫です。現実的な例を先に見たい場合は サンプルを読み込む をクリックしてください。

PHP 構文 は完全な形で残してください — 名前空間、use 文、可視性修飾子、属性。パーサーは不要なボイラープレートは無視します。

2

「変換」をクリック

緑色の 変換 ボタンをクリックしてください。ツールが PHP を読み込み、すべてのプロパティとクラスを保持して、1 回のパスで JSON を構築します。実行中は短いローディングインジケーターが表示されます。

3

JSON をコピー

右側のパネルにインデント付きの JSON が表示されます。HTTP リクエストボディ、PHPUnit のフィクスチャ、設定ファイル、API ドキュメントにそのまま貼り付けて使えます。

こんな場面で役立ちます

API リクエストペイロードの作成

CreateOrderRequest の DTO があって、Postman や curl、統合テスト用の JSON ボディが必要な場合。クラスを貼り付ければ、ペイロードが手に入ります。

Laravel・Symfony のシード作成

ファクトリの <code>new Product(...)</code> の束を、database:seed やフィクスチャローダー用の JSON シードファイルに変換 — もう手作業で配列を書く必要はありません。

OpenAPI のサンプルを実態に合わせる

実際の DTO から直接 OpenAPI 仕様用の JSON サンプルを生成すれば、スキーマのサンプルがコードと同期し続けます。

json_encode の出力をデバッグ

オブジェクトが想定どおりにシリアライズされないとき、ここに貼り付けてきれいな形を確認し、実際の <code>json_encode()</code> の出力と比較できます。

よくある質問

PHP 8 の型付きプロパティや readonly プロパティに対応していますか?

はい。型付きプロパティ、null 許容型(?string)、readonly 修飾子、コンストラクタのプロモートプロパティ、すべて拾います。型ヒントは JSON の値を変えません — パーサーに何を期待するかを伝えているだけです。

enum はどうなりますか?

バック付き enum はその裏の値(string または int)にシリアライズされます。バック型を持たない純粋な enum は case 名として出力されます。これは BackedEnum に対する標準の json_encode の動作と同じです。

連想配列とインデックス配列 — どちらがオブジェクトになりますか?

json_encode と同じルールです。0 始まりの連続インデックス配列は JSON 配列に、文字列キー(または非連続の整数キー)を持つ配列は JSON オブジェクトになります。

DateTime と DateTimeImmutable はどのようにシリアライズされますか?

ISO-8601 文字列として、$dt->format(DateTime::ATOM) と同じ形式で出力されます。日付にタイムゾーンが含まれていれば、オフセットも出力に保持されます。

models ファイルをまるごと貼り付けられますか?

はい。トップレベルの各クラスが独自の JSON エントリになり、ネストされたオブジェクトは自然に展開され、コンストラクタで設定されたプロパティも含まれます。private や protected のプロパティも出力されます — パーサーは可視性ではなく形を見ているからです。

コードは保存されますか?

PHP は変換のためにバックエンドに送信されますが保持されません — ペイロードのログも取りません。機密性の高いコードの場合は、貼り付ける前に一度確認してください。

他にも役立つツール

PHP から JSON はその一部にすぎません。以下のツールとの相性が良いです: