このビューで文書を読む手順

左側に貼り付けた文書は入力しながら解析され、右側に色分けされたツリーとして描かれます。キー、文字列、数値、true/false、null がそれぞれの色で表示され、オブジェクトと配列には Object{…} や Array[n] に畳むための印が付きます。実行ボタンはなく、編集中も左右のペインは同期したままです。

処理はすべてタブ内で完結します。テキストはブラウザの JavaScript が解析して描画し、どのリクエストにも載りません。< で始まり > で終わるテキストは XML として扱い、先に変換します。

  1. 左の欄に JSON を貼り付けるか入力します。右のペインは 1 文字ごとに再描画されます。
  2. 印をクリックするとオブジェクトや配列が Object{…} や Array[n] に畳まれます。もう一度クリックすると元に戻ります。
  3. 「JSON を圧縮」で同じ文書を 1 行で表示し、「XML 表示」で XML の形にします。同じボタンでツリーに戻ります。
  4. 「クリア」で両方のペインを空にします。文字列が http:// または https:// のアドレスだけならリンクとして表示されます。
  5. 解析できないときは、右のペインに行番号、位置、解析器が期待したトークンが表示され、「JSON を圧縮」と「XML 表示」は前の文書を見せる代わりに表示できるものがないことを知らせます。

このビューが文書にすること

右側のツリー

ツリーはテキストではなく解析済みの文書から作られます。キーは文書の順序を保ち、値は型ごとに色分けされます。畳むと枝は印に置き換わり、配列の印には要素数も表示されます。

http:// または https:// のアドレスだけの文字列はリンクになります。キーや文字列の中のマークアップは解釈されずテキストとして表示されるため、文書がページに要素を注入することはありません。

解析器が受け入れるもの、変えるもの

解析器は厳密な JSON です。コメント、末尾のカンマ、一重引用符のキー、NaN、先頭が 0 の数値はすべて拒否されます。拒否された文書は、行番号、該当位置を示す印付きの抜粋、解析器が期待したトークンとともに報告されます。

同じキーが重複すると最後の値が残ります。数値は JavaScript の数値として読まれるため、端で違いが出ます。double が保持できる有効数字 15〜16 桁を超える桁は丸められ(12345678901234567890 は 12345678901234567000)、1e21 は 1e+21 と表示され、1e400 のように double の範囲外の値はツリーでは Infinity、圧縮表示では null になります。圧縮表示は JSON.stringify の出力だからです。

XML の入力と出力

XML はこのツール独自の対応で変換されます。属性は @名前 のキーに、繰り返し現れる兄弟要素は配列に、CDATA はテキストになり、宣言とコメントは破棄されます。テキストと子要素の両方を持つ要素は子要素を残し、周囲のテキストを #text キーに入れます。

XML 表示は現在の文書を XML として書き戻します。テキストと属性値はエスケープされ、XML で使えない要素名は使える形に直され(空白や先頭の数字はアンダースコア)、#text キーはタグではなくテキストとして書き出されます。結果は選択してコピーできる読み取り専用のテキストです。

サイズと制限

ページ側にサイズ制限はありませんが、ツリーは実際のマークアップなので巨大な文書は重くなります。1.1 MB のサンプルでは約 25 MB のマークアップが生成され、1 秒近くかかりました。数千行までは軽快で、300 行の文書を 1 文字ごとに再描画する処理は、最初の 1 回を除けば Chrome で 6〜15 ms でした。

保存はされません。再読み込みすると左の欄のサンプルに戻り、「クリア」で両方のペインが空になります。

最近使ったツール: