JSON を貼り付けると、元のテキストを見失わずに入れ子の値をたどれます。XML 入力も独自の対応規則で変換します。
ブラウザ内でローカルに実行左側に貼り付けた文書は入力しながら解析され、右側に色分けされたツリーとして描かれます。キー、文字列、数値、true/false、null がそれぞれの色で表示され、オブジェクトと配列には Object{…} や Array[n] に畳むための印が付きます。実行ボタンはなく、編集中も左右のペインは同期したままです。
処理はすべてタブ内で完結します。テキストはブラウザの JavaScript が解析して描画し、どのリクエストにも載りません。< で始まり > で終わるテキストは XML として扱い、先に変換します。
ツリーはテキストではなく解析済みの文書から作られます。キーは文書の順序を保ち、値は型ごとに色分けされます。畳むと枝は印に置き換わり、配列の印には要素数も表示されます。
http:// または https:// のアドレスだけの文字列はリンクになります。キーや文字列の中のマークアップは解釈されずテキストとして表示されるため、文書がページに要素を注入することはありません。
解析器は厳密な JSON です。コメント、末尾のカンマ、一重引用符のキー、NaN、先頭が 0 の数値はすべて拒否されます。拒否された文書は、行番号、該当位置を示す印付きの抜粋、解析器が期待したトークンとともに報告されます。
同じキーが重複すると最後の値が残ります。数値は JavaScript の数値として読まれるため、端で違いが出ます。double が保持できる有効数字 15〜16 桁を超える桁は丸められ(12345678901234567890 は 12345678901234567000)、1e21 は 1e+21 と表示され、1e400 のように double の範囲外の値はツリーでは Infinity、圧縮表示では null になります。圧縮表示は JSON.stringify の出力だからです。
XML はこのツール独自の対応で変換されます。属性は @名前 のキーに、繰り返し現れる兄弟要素は配列に、CDATA はテキストになり、宣言とコメントは破棄されます。テキストと子要素の両方を持つ要素は子要素を残し、周囲のテキストを #text キーに入れます。
XML 表示は現在の文書を XML として書き戻します。テキストと属性値はエスケープされ、XML で使えない要素名は使える形に直され(空白や先頭の数字はアンダースコア)、#text キーはタグではなくテキストとして書き出されます。結果は選択してコピーできる読み取り専用のテキストです。
ページ側にサイズ制限はありませんが、ツリーは実際のマークアップなので巨大な文書は重くなります。1.1 MB のサンプルでは約 25 MB のマークアップが生成され、1 秒近くかかりました。数千行までは軽快で、300 行の文書を 1 文字ごとに再描画する処理は、最初の 1 回を除けば Chrome で 6〜15 ms でした。
保存はされません。再読み込みすると左の欄のサンプルに戻り、「クリア」で両方のペインが空になります。