JSON・XML・YAMLパーサー
JSON・XML・YAMLを貼り付けるかファイルで開くと、文法チェック(誤りは何行目何文字目か)、折りたたみ式のツリー表示、値・キーの検索、パスによる値の検索、整形・圧縮、相互変換ができます。処理はすべてこのブラウザ内で行われ、入力やファイルはサーバーに送信されません。
JSON・XML・YAMLファイルを入力欄にドラッグ&ドロップしてもかまいません。ファイルはこのブラウザ内でのみ読み取ります(UTF-8、最大2MB)。形式は拡張子と内容から判別し、合うタブで開きます。
構造の概要
検索
ツリー
項目をクリックするとパスがここに表示されます
パスで探す
JSONPathの一部に対応しています: $.a.b · $.list[0] · $.list[-1] · $.list[*].name · $..price · $.list[0:2] · $.list[?(@.price < 10)] · $['キー名']
整形・変換
変換ルール: キーは要素名になり、配列は同じ名前の要素の繰り返しになります。「@名前」キーは属性、「#text」キーは要素のテキストになります。要素名に使えない文字は _ に置き換わります。キーが1つだけのオブジェクトはそのキーがルート名になります(それ以外は「ルート名」、空ならroot)。YAMLへはそのまま書き出し、文字列は別の値と誤読されうる場合(true、007 など)だけ引用符を付けます。
JSON・XML・YAMLファイルを入力欄にドラッグ&ドロップしてもかまいません。ファイルはこのブラウザ内でのみ読み取ります(UTF-8、最大2MB)。形式は拡張子と内容から判別し、合うタブで開きます。
構造の概要
検索
ツリー
項目をクリックするとパスがここに表示されます
パスで探す
XPathの一部に対応しています: /root/item · //name · /root/item[2] · //item[@id='a'] · //item[title='x'] · //item/@id · //name/text() · 名前だけ書くとどこからでも探します
整形・変換
変換ルール: 属性は「@名前」キー、属性や子要素と並ぶテキストは「#text」キーになります。同じ名前が繰り返されると配列、内容のない要素はnullです。コメントと処理命令は捨てます。XMLの値には型がないため、既定ではすべて文字列です(JSON・YAMLとも同じ)。
JSON・XML・YAMLファイルを入力欄にドラッグ&ドロップしてもかまいません。ファイルはこのブラウザ内でのみ読み取ります(UTF-8、最大2MB)。形式は拡張子と内容から判別し、合うタブで開きます。
構造の概要
検索
ツリー
項目をクリックするとパスがここに表示されます
パスで探す
YAMLもJSONと同じ構造として読み、JSONPathで探します: $.a.b · $.list[0] · $.list[*].name · $..price · $.list[?(@.price < 10)] · $['キー名']
整形・変換
変換ルール: YAMLはJSONと同じ構造として読むため、JSONへはそのまま変換されます。XMLへはJSON→XMLのルール(キーは要素名、配列は同名の繰り返し、「@名前」は属性、「#text」はテキスト)に従います。コメントは変換で失われます。
知っておくこと
- JSONは厳密に読みます。コメント、末尾のカンマ、シングルクォート、引用符のないキーはエラーとして知らせます。
- 数値は原文のまま保持します。12345678901234567890や1.0も整形・変換で変わりません。
- 同じキーが2回出てもエラーにはしませんが、警告で知らせます(実際のプログラムは最後の値だけを使います)。
- XMLのDOCTYPE内部宣言(ENTITY)は解釈せず拒否します。エンティティ爆弾や外部ファイル読み込みなどの攻撃の入口になるためです。外部DTDを指す宣言は取得せずに読み飛ばします。
- XMLでは < > & " ' と数値参照(A)だけを展開します。それ以外の &名前; はエラーです。
- 入力は2MB、入れ子は200段までです。
- YAMLはよく使う構文に対応しています — マップ・リスト・引用符付きテキスト・| > ブロックスカラー・[ ] { } フロー・コメント。アンカー(&)・エイリアス(*)・タグ(!)・複数ドキュメント(---)・? 複合キー・複数行の引用符付きテキストは未対応で、エラーとして知らせます。エイリアスは内容を指数的に膨らませる攻撃の入口にもなるため展開しません。
- YAMLの値は1.2のルールで読みます。null・true/false・10進数だけが値になり、yes/no・0x1F・日付は文字列のままです。インデントにはスペースのみ使えます(タブはエラー)。
よくある質問
入力したJSON・XMLはサーバーに送信されますか?
いいえ。読み取り・検査・変換はすべてこのブラウザ内で行われ、どこにも送信・保存されません。
「コード整形」や開発者ツールのJSONタブとの違いは?
それらは見やすく書き直すツールで、こちらは構造を読むツールです。ツリー表示、パスによる値の検索、エラー位置、構造の概要、JSON↔XML変換があります。
XMLをJSONに変換すると数値が文字列になります。
XMLの値には型がないため、既定ではすべて文字列です。「数値・true/falseを値に変換」をオンにすると、数値の形をした文字だけが数値になります(007のような先頭0は文字列のままです)。
JSON→XML→JSONで元に戻りますか?
このツールのルール(属性は「@」、テキストは「#text」、繰り返しは配列)の範囲では戻ります。ただし空文字列とnullはどちらも空要素になりnullに戻り、要素名に使えないキーは変更されます。
YAMLのアンカー(&)とエイリアス(*)はなぜ使えないのですか?
エイリアスは同じ内容を何度も参照でき、数段で文書を何十億倍にも膨らませられる(エイリアス爆弾)ため、展開せずエラーとして知らせます。展開済みのテキストを貼り付ければ読み取れます。
このツールの使い方
JSON・XML・YAMLが正しいか確認し、構造を調べるときに使います。文法エラーは何行目何列目かを知らせ、折りたたみ可能なツリーで表示し、値・キーの検索、パスによる値の検索、整形・圧縮、相互変換に対応します。処理はすべてブラウザ内で行われます。
よくある質問
JSONにエラーがあれば教えてくれますか?
はい。文法が間違っていると、何行目何列目かを知らせます。
JSON・XML・YAMLを相互に変換できますか?
はい。相互に変換でき、整形・圧縮もできます。
大きなJSONから目的の値を探せますか?
はい。ツリーを折りたたみ・展開でき、値・キーの検索とパスによる値の検索に対応しています。
関連ツール
すべてのツールを見るパスワード生成
長さと文字の種類を選んで、または覚えやすい単語の組み合わせ(パスフレーズ)で、推測されにくいパスワードを作ります。作った値はこの画面の外には出ません。
IPアドレス確認
現在接続しているグローバルIPアドレスとおおよその位置を確認します。
ファイル・テキスト暗号化
パスワードでテキストやファイルを AES-256 で暗号化・復号します。処理はすべてこのブラウザ内で行われ、テキスト・ファイル・パスワードはサーバーに送られません。
Webページ・RSS点検
アドレスを入力すると、サーバーがアクセスしてタイトル・説明・OG プレビュー情報、応答ヘッダー、リダイレクト、SSL 証明書の有効期限を点検し、RSS/Atom フィードの形式とよくある誤りを確認し、API が他サイトのブラウザリクエストを許可しているか(CORS)も判定し、ドメインの DNS レコード(A・MX・TXT・NS など)を公開 DNS で検索します。
ダイアグラム作成
テキストからフローチャート・シーケンス・ER・ガントなどの図を描き、SVG・PNGで保存します(Mermaid記法)。入力したテキストはサーバーに送信されません。
開発者ツール
URL・Base64・HTML・Unicodeエンコード、JSON整形・CSV変換、UNIX時間、JWTデコーダー、ハッシュ、UUID、正規表現、テキスト比較、進数変換、cron解釈、表の変換、サブネット(CIDR)・chmod計算、HTTP・MIME・ポート辞典、robots・sitemap、ダミーデータ、TOTP・semver・ビット演算・設定ファイル(.env・INI・TOML)変換・JSON スキーマ検証・docker run→compose・.gitignore・OG タグ生成・ASCII/ANSI コード表まで、40種の開発補助ツールを1か所に。