
JSON 整形ツールです。
文 ゆめさく公開 更新
0 文字
整形した結果
左に JSON を入力すると、ここに整形した結果が出ます。
使い方
- 左の
欄に JSON を 貼り付けるか、 サンプルの ボタンで 読み込みます。 - インデント (半角 2 つ・4 つ・タブ・圧縮) を
選びます。 必要なら 「キーを 辞書順に 並べ替える」も 付けます。 - 構文が
壊れている ときは、 行・列・理由が 出ます。 よく ある 壊れ方なら 「よく ある 誤りを 直す」、 ChatGPT や Claude が 出した JSON なら 「生成AIの JSONを 直す」を 付けます。 - 「コピーする」か
「ダウンロードする」で、 整形した 結果を 取り出します。
構文エラーの 行・列を 自前の 構文解析で 出すしくみ
JSON.parse は、Expected double-quoted property name in JSON at position 7 (line 1 column 8)のように
この
よく 出る 壊れ方と、 出している理由
| 壊れ方 | この |
|---|---|
| 末尾の | 最後の |
| 文字列を | 文字列は |
| キーに | オブジェクトの |
| // や | JSON には |
| 数の | 0 で |
| NaN、 | JSON の |
「よく ある 誤りを 直して 整形」が直す範囲
上の
数を 書かれた 文字のまま 出すしくみ
多くのJSON.parse で
| 入力 | JSON.parse → JSON.stringify の結果 | この |
|---|---|---|
| 1e400 | null | 1e400 ( |
| 12345678901234567890 | 12345678901234567000 | 12345678901234567890 ( |
| -0 | 0 | -0 ( |
この
インデント・圧縮・キーの並べ替え
整形 (半角スペース 2 つ・4 つ・タブ) とJSON.stringify とは
「キーを
JSON の値の型
JSON の
| 使える型 | 書き方の例 |
|---|---|
| 文字列 | "text" |
| 数 | 123、 |
| 真偽値 | true、 |
| null | null |
| 配列 | [1, 2, 3] |
| オブジェクト | {"key": "value"} |
使えないJSON.stringify は、toJSON() で
生成 AI が 出した JSON を直す
ChatGPT や
- コードフェンス (``` や
```json) を、 前に 説明文が あっても 探して 取り 除きます。 - JSON の
前後に 残った 説明文は、 最初に 出てくる { か [ から、 対応する 最後の } か ] までを 中身と みなして 取り 除きます。 - NaN、
Infinity、 -Infinity、 undefined は null に 読み替えます。 - 末尾の
カンマ、 シングルクォート、 キーの 引用なし、 コメントも 「よく ある 誤りを 直す」と 同じく 直します。
読み飛ばした
値は ブラウザの 中だけで 処理するしくみ
貼り付けた
通信が 出ない ことの確かめ方
ブラウザの
大きな 入力 (2,000,000 文字超) と、 深すぎる 入れ子 (500 階層超) を断る理由
2,000,000 文字を
配列や
別の 場所で 整形するなら
普段使っている
VS Code
VS Code の
jq (コマンドライン)
jq が1e400 は 1E+400 に
terminal
cat data.json | jq .python -m json.tool (コマンドライン)
Python が1e400 のようなInfinity に、-0 は 0 に
terminal
python -m json.tool data.jsonコードで書くなら
同じ
Python の例
format_json.py
import json
text = '{"name": "yumesaku", "active": true, "tags": ["json", "format"]}'
data = json.loads(text)
print(json.dumps(data, ensure_ascii=False, indent=2))実行すると、
出力の例
{
"name": "yumesaku",
"active": true,
"tags": [
"json",
"format"
]
}Python の json モジュールは、json.JSONDecodeError が、lineno) とcolno) としてExpecting property name enclosed in double quotes に
json_error.py
import json
try:
json.loads('{"a": 1,}')
except json.JSONDecodeError as e:
print(e.lineno, e.colno, e.msg)出力の例 (Python 3.13 以降)
1 8 Illegal trailing comma before end of objectJavaScript の例
format-json.mjs
const text = `{"name":"yumesaku","active":true,"tags":["json","format"]}`;
const data = JSON.parse(text);
console.log(JSON.stringify(data, null, 2));実行すると、
出力の例
{
"name": "yumesaku",
"active": true,
"tags": [
"json",
"format"
]
}API を
よくある質問
JSON整形ツールとは何ですか
JSON の
構文エラーの 位置が、 ブラウザに よって 違うと 聞きました。 本当ですか
文言は
インデントは 2 つと 4 つ、 タブの どれが よいですか
好みと、
圧縮 (1 行に ) は、 どんな ときに 使いますか
設定ファイルや
キーを 辞書順に 並べ替えると、 値は 変わりますか
値は
並べ替えを 切っていると、 書いた 順のまま出ますか
出ます。
末尾の カンマなど、 よく ある 構文エラーには 何が ありますか
この
大きな 整数や 1e400 のような 数は、 整形すると 変わりますか
変わりません。
この 道具に 貼った JSON は どこかに 送られますか
送られません。
大きな JSON を 貼っても 画面が 固まりませんか
2,000,000 文字を
同じ キーが 2 回出てくる JSON を 貼ると どうなりますか
後に
先頭に BOM (U+FEFF) が 付いた JSON を 貼ると どうなりますか
取り除いてから
「よく ある 誤りを 直して 整形」は、 何を 直して 何を 直さないのですか
末尾の
ChatGPT や Claude が 出した JSON が 読み込めません。 直せますか
「生成AIの
JSON と JavaScript の オブジェクトリテラルは 何が 違いますか
JSON (RFC 8259) は、
書き手と 日付と出典
- 書き手
- ゆめさく
- 公開日
- 更新日
RFC 8259 The JavaScript Object Notation (JSON) Data Interchange Format
2017 年 12 月発行 (RFC 7159 を置き換え) ・ に本文を読んで確かめました
数の
先頭に 余分な 0 を 置けない こと (Leading zeros are not allowed)。 6 節で、 安全に 相互運用できる 整数の 範囲を -(2^53)+1 から (2^53)-1 までとし、 1E400 のような 数は 相互運用の 問題を 示唆すると 書かれている こと。 オブジェクトの キーは 一意であるべき (SHOULD be unique) だが、 一意で ない ときの 振る 舞いは ソフトウェアに 任されており、 多くの 実装は 最後の キーと 値だけを 報告すると 書かれている こと。 ネットワーク越しに 送る JSON の 先頭に 実装が BOM (U+FEFF) を 付けてはならない (MUST NOT) こと、 受け取る 実装は BOM の 存在を エラーに せず 無視して よい (MAY ignore) と 書かれていること。 MDN Web Docs の英語版 (2026-10-18 更新) ・ に本文を読んで確かめました
JSON.parse が
文法に 合わない 文字列を 受け取ると SyntaxError を 投げる こと。 配列や オブジェクトに 末尾の カンマを 置けない こと、 文字列は シングルクォートでなく ダブルクォートで 囲む決まりである ことが、 不正な JSON の 例として 書かれている こと。 数は JavaScript の 数に 変換された あと 精度を 失うことが あり、 精度を 落と さずに 大きな 数を 受け渡すには 文字列にして 送り、 BigInt 等に 戻す方法が あると 書かれていること。 Python 3 ドキュメント json JSON encoder and decoder
Python 3 の英語版 ・ に本文を読んで確かめました
json.JSONDecodeError が、
読めなかった 位置を lineno (行番号) と colno (列番号) として 持つこと。 json.dumps の sort_keys を 真に すると、 辞書の キーを 並べ替えて 出力する ことが 書かれていること。 Visual Studio Code ドキュメント Basic Editing
Visual Studio Code の公式ドキュメント (英語版) ・ に本文を読んで確かめました
Format Document (ファイル全体の
整形) の 既定の キー割り 当てが、 Formatting の 節で OS ごとに Windows は Shift+Alt+F、 macOS は ⇧⌥F (Shift+Option+F)、 Linux は Ctrl+Shift+I と 書き分けられていること。
関係する 道具とレッスン
コードの
実行環境 登録なしで、
ブラウザから コードを 書いて 動かせます。 Python と JavaScript は ブラウザの 中で 動きます。 JavaScript 非同期処理と
API Promise、
async/await、 fetch で 外部 API と データを やり取りする 書き方を 学びます。 全 19 レッスン。 Python入門 基礎文法編
Python の
実行、 値、 変数、 型、 入出力など 基礎文法を 学び、 短い プログラムを 自力で 書けるようにします。 AIコーディング
生成 AI を
使った コーディングの 使い方・ 比較・ 診断の ハブです。 プログラミングの
よく ある 間違いと エラーの 直し方 初心者が
ぶつかる エラーの 原因と 直し方を、 コース 別に 引けます。
次の一歩
JSON は