Format, explore and convert JSON safely.
ブラウザだけで JSON を検証・閲覧・変換。エラー位置を正確に示し、巨大なファイルでも軽い折りたたみツリー、JSONPath クエリ、CSV・XML・YAML・JSON Schema・TypeScript への書き出しに対応します。
左側に JSON を貼り付けるかドロップして始めてください。
使い方
JSON を持ち込む
貼り付けても、ファイルをドロップしても、別のツールから受け取ってもかまいません。アップロードは一切なく、重い処理はあなたが求めるまで動きません。
判定を読む
正しいか、あるいは壊れている正確な行と列か。加えてキーの重複と、JavaScript が保持できない数値も示します。
中を見る
ツリーを折りたたみ、キーや値で絞り込み、文書全体に JSONPath 式を走らせられます。
持ち出す
CSV、XML、YAML、JSON Lines、JSON Schema、TypeScript や Go の型。あるいは別のツールへ直接送れます。
JSON.parse ではなく本物のパーサー
エラーには行・列と行番号欄のハイライトが付きます。自分で数えるしかない文字位置ではありません。
64ビットの ID が壊れない
長い数値 ID は1桁ずつそのまま書き戻されます。JSON.parse に頼る整形ツールは、それを黙って最も近い倍精度値に丸めてしまいます。
ワンクリック修復
コメント、余分なカンマ、シングルクォート、引用符のないキー、Python の True/False/None、迷い込んだ BOM が厳密な JSON になります。
JSONPath クエリ
ワイルドカード、再帰下降、スライス、[?(@.price > 10)] のようなフィルタ。すべて手作業で解釈しており、入力した内容が実行されることはありません。
実データからの型
JSON Schema、TypeScript のインターフェース、Go の構造体を全レコードから推論するので、たまにしか無いフィールドは任意項目になります。
正直な平坦化
パスの区切りと、入れ子の配列の扱いを選べます。空のオブジェクトも列を保ち、書き出しから消えたりしません。
構造の差分
2つの文書をパス単位で比較するので、キーの順序が違うだけで千件の変更に化けることがありません。
大きなファイルでも使える
検証は Web Worker に移り、ツリーは画面に見える行だけを描画し、履歴は文書の複製ではなく変わった文字だけを保存します。
Format, explore and convert JSON safely.
API のレスポンスにはトークンや顧客情報、内部 ID が含まれます。JSONFlow はそれをどこにも送りません。パーサーもツリーもクエリも書き出しもこのタブの中で動くので、本番のレスポンスを貼り付けても、自分のエディタで開くのと同じくらい安全です。
すべてこのタブの中で動きます
パーサー、折りたたみツリー、JSONPath エンジン、各種書き出しは、あなたの端末で動く普通の JavaScript です。アップロード手順もサーバーも、データを運ぶ通信もありません。ページを読み込んだ後に接続を切っても、ツールはそのまま動き続けます。
開発者のための、JSON 作業台のすべて。
設定ファイルを壊している1つのカンマを見つける、API のレスポンスを表計算に落とす、誰も文書化していないエンドポイントの TypeScript インターフェースを作る、同じペイロードの2つの版が本当に違うのか確かめる、JSON が引用符付き文字列に包まれて届いたログを開く。
JSON のペイロードが匿名であることはほとんどありません。アクセストークン、メールアドレス、注文番号、内部エンドポイントが入っています。それをホスト型の整形ツールに貼り付けるのは、他人のサーバーに丸ごと渡すことです。ここではタブの外に出ないので、記録も、キャッシュも、漏洩もありません。
よくある質問
Q貼り付けた JSON はサーバーへ送られますか?+
いいえ。解析、検証、ツリー、クエリ、すべての書き出しはこのブラウザタブの中で実行されます。ページを読み込んだ後にネットワークを切っても、すべてそのまま動きます。
Q実際にどれくらいの大きさのファイルまで扱えますか?+
普通のノートパソコンなら、18万ノードを含む 1.5 MB の文書が 0.1 秒をかなり下回る時間で解析され、数十メガバイトのファイルも開けます。検証は Web Worker に移り、ツリーは画面に見える行だけを描くためです。実際の限界はツールではなくメモリで、100 MB を超えたあたりからはどのソフトを使ってもブラウザのタブは苦しくなります。2 MB を超えるものは自動で読み込まず必ずボタンの後ろで止めるので、大きなファイルが届いた瞬間にページが固まることはありません。
Q他の整形ツールだと長い ID が変わってしまうのはなぜですか?+
JSON.parse はすべての数値を64ビット浮動小数点にするため、2^53 を超える整数を正確に表せません。Twitter や Discord、Snowflake の ID は末尾の桁が失われます。JSONFlow は元のテキストの桁をそのまま保持し、その範囲に入る数値があれば警告します。
Qファイルにコメントや余分なカンマがあります。問題になりますか?+
いいえ。厳密な解析に失敗すると自動的に寛容な解析が走り、成功すれば「修復」ボタンが現れます。コメント、余分なカンマ、シングルクォート、引用符のないキー、Python の True/False/None、NaN、Infinity に対応し、文書を厳密な JSON に書き直します。
QJSON から CSV への平坦化はどう動きますか?+
最上位の配列の各要素が1行になり、入れ子のキーは user.address.city のようなドット区切りの列になります。区切り文字と、入れ子の配列を要素ごとに1列にするか、JSON のまま残すか、連結するかを選べます。逆方向では見出しを文字どおりに扱うので、first_name という列は、入れ子を明示的に指示しない限り first_name のままです。
Qクエリ欄には何を書けますか?+
JSONPath の一部です。$.users[0].name、[*] のワイルドカード、.. による再帰下降、[0:5] のようなスライス、負のインデックス、[?(@.price > 10)] や [?(@.name =~ ^a)] のようなフィルタが使えます。式は手作業で解釈され、コードとして評価されることはありません。