ToolConvoyToolConvoyv2.6
DEV

PHP 配列から JSON への変換 — PHP 配列構文を JSON に変換

PHP 配列構文を JSON に変換します。短縮形式と長い配列構文、連想キー、末尾のカンマを処理。ブラウザ内で、アップロード不要。

● ローカル動作 · タブ内で生成ページ読み込み以降のツールによる通信:0件

PHP Array to JSON

Convert PHP array syntax to JSON. Handles nested arrays and associative arrays. Works entirely in your browser.

PHP 配列構文と JSON は、時には人々が交換可能として扱うほど似ており、また時には単純なコピーペーストを壊すほど違います。PHP はキーと値のペアに => を使い、JSON は : を使います。PHP はクォートされていない文字列キーを許可し、JSON はダブルクォートされた文字列を要求します。PHP は array() または [...] を使い、JSON はオブジェクトに {}、配列にのみ [...] を使います。違いは見ためだけのものですが、セマンティクスは同一であり、構文ギャップは十分に広いため、深くネストされた PHP 設定配列の手動変換は退屈で間違いやすい雑務です。

パーサーは、PHP から JSON への変換における 5 つの最も一般的な落とし穴を自動的に処理します。文字列キー:[name => 'Alice'] は {"name": "Alice"} になります。定数:flag がクォートされていない [flag => true] は、flag が認識された定数名にマッピングされるため {"flag": true} になります。末尾のカンマ:[1, 2, 3,] は最後のカンマをドロップします。短縮配列構文:[...] がデフォルトであり、キーに応じて JSON オブジェクトまたは配列を生成します。変換は単方向ですが、出力は常に有効な JSON です。

このツールの現実的な必要性は、Laravel からフロントエンドへのデータ受け渡しです。Laravel 開発者が PHP 構文で設定配列を書き、フロントエンド開発者が JavaScript または TypeScript コンポーネントのため同じデータを JSON オブジェクトとして必要とします。JSON を介したラウンドトリップは、@json() を持つ Blade テンプレートに PHP 配列を埋め込むよりもきれいです。JSON 出力は静的アーティファクトであり、フロントエンドリポジトリにコミットでき、独立してバージョン管理され、TypeScript コンパイラによって型チェックされます。

広告

使い方

  1. PHP 配列を貼り付ける

    短縮構文 `[...]` またはレガシー `array(...)` のいずれかを使って PHP 配列リテラルを貼り付けます。パーサーは、実際の PHP コードに現れるように、連想キー、ネストされた配列、文字列クォート、整数値を処理します。

  2. JSON 出力を確認する

    出力はプリティプリント付きの標準 JSON です。null、ブール値、数値型が推論されます。PHP の `null` は JSON null に、PHP の `true`/`false` は JSON ブール値に、素の数値リテラルは JSON 数値になります。

  3. JSON をコピーまたはダウンロードする

    JSON をクリップボードにコピーするか、.json ファイルとしてダウンロードします。出力は RFC 8259 に従った有効な JSON であり、任意の標準 JSON パーサーで解析できます。

よくある質問

PHP 定数と式はどのように処理されますか?

PHP 定数(`PHP_EOL`、`true`、`false`、`null` など)は解決されます。`true` → `true`、`false` → `false`、`null` → `null`。認識されない定数と関数呼び出しは、そのリテラルソーステキストとして文字列でラップされます。算術式は評価されません。`1 + 2` は文字列 `'1 + 2'` のままです。

heredoc と nowdoc 文字列構文についてはどうですか?

heredoc と nowdoc 文字列はアンラップされ、内側のテキストは JSON 文字列として扱われます。heredoc の先頭インデントは PHP 7.3 のフレキシブル heredoc 規則に従って削除されます。空の heredoc は空の JSON 文字列になります。

複数の配列定義を持つ PHP ファイルを処理できますか?

パーサーは遭遇した最初のトップレベル配列リテラルを抽出します。PHP ファイルが複数の配列を含む場合(たとえば、いくつかの `return [...]` 文を持つ設定ファイル)、最初のもののみが変換されます。完全なカバレッジのためには、各配列を個別に貼り付けてください。

JSON 出力で PHP 整数キーはどのように処理されますか?

連続した整数キー(0、1、2、...)を持つ PHP 配列は JSON 配列になります。スパースまたは文字列キーを持つ PHP 配列は JSON オブジェクトになります。PHP 配列が数値と文字列キーを混合する場合、出力は数値キーを文字列プロパティ名として持つ JSON オブジェクトになります。

ソースの末尾のカンマを保持しますか?

PHP 配列の末尾のカンマは解析中に暗黙的に無視されます。PHP での構文の便宜であり、JSON では何の意味もありません。出力 JSON には末尾のカンマが含まれません。JSON 構文では許可されていないためです。

制限事項

  • 式の評価なし関数呼び出し、変数参照、インライン計算は評価されません。`['date' => date('Y-m-d')]` は `{"date": "date('Y-m-d')"}` になります。文字列であり、評価された結果ではありません。
  • クォートされていない文字列キーは予期せず解析される可能性がありますPHP は `[key => value]` のようなクォートされていない文字列キーを許可します。パーサーはこれらを文字列キーとして扱います。クォートされていないキーが認識された定数名と衝突する場合、定数の値が代わりに使用されます。`[true => 1]` は `{"1": 1}` になります。
  • ソース内の 1 行ごと 1 エントリを前提としますパーサーは整形された PHP 配列で最もよく動作します。ミニファイまたは 1 行の PHP 配列は正しく解析されますが、不正な形式の入力ではあまり役立たないエラーメッセージを生成します。

プラットフォーム別の注意点

macOS
PHPStorm と VS Code はどちらも PHP 配列をよくフォーマットします。ブラウザツールは、チャットやメールからの PHP 配列スニペットを非 PHP ツールで使用するために JSON に変換するのに適しています。
Linux
コマンドラインで変換する場合、`php -r 'echo json_encode([...]);'` が同じことを行います。ブラウザツールは、PHP ランタイムが利用できない場合に適しています。
Web
完全にクライアントサイドで動作します。読み込み後はオフラインでも動作します。
広告
広告