{ }

JSON整形

JSONを読みやすく整形したり、1行に圧縮したりします。構文エラーは行と列で教えます。

・

ボタンを押すと、ここに結果が出ます

入力
0行 / 0文字
結果
0行 / 0文字

使い方とメモ

  • 整形すると読みやすい形に、圧縮すると1行にまとめます。インデント幅はスペース2・4・8とタブから選べます。
  • 構文エラーは「3行目 12列目」のように場所を指摘します。どうしても分からないときは、エラー欄の「元のエラーメッセージ」も開いてみてください。
  • 結果を入力へ を押すと結果が入力欄に移ります。圧縮したものをもう一度整形する、といった往復に使えます。
  • 変換はブラウザの中だけで動きます。APIレスポンスをそのまま貼っても、どこにも送信されません。
{ }

よくある構文エラーと直し方

整形できないときは、たいてい次のどれかです。エラー欄に出るメッセージと見比べてください。

末尾のカンマ

JavaScript では最後の要素のあとにカンマを書けますが、JSON では書けません。「プロパティ名はダブルクォートで囲む必要があります。末尾のカンマが余っていませんか」や「予期しない文字 ] があります」と出たら、閉じ括弧の直前を見てください。

✕ {"name": "マシーンくん", "cute": true,}
○ {"name": "マシーンくん", "cute": true}

シングルクォート・クォートの無いキー

JSON の文字列とキーはダブルクォートで囲みます。JavaScript のオブジェクトや Python の dict をそのまま貼ると、「プロパティ名か } が必要です」と出ます。

✕ {'name': 'マシーンくん'}
✕ {name: "マシーンくん"}
○ {"name": "マシーンくん"}

カンマの抜け

要素と要素の間のカンマが抜けると「カンマか } が必要です」と出ます。複数行の JSON では、抜けた行ではなく次の要素の先頭が指されます。

✕ {"name": "マシーンくん" "cute": true}
○ {"name": "マシーンくん", "cute": true}

コメント

JSON にはコメントを書けません。設定ファイルからコピーした // や /* */ は消してから整形してください。

✕ {
    "port": 3000 // 開発用
  }
○ {
    "port": 3000
  }

文字列の中の改行

文字列の中に改行やタブをそのまま入れることはできません。\n・\t に置き換えます。

✕ {"memo": "1行目
2行目"}
○ {"memo": "1行目\n2行目"}

JSON で使えない値

使える値は文字列・数値・true・false・null・オブジェクト・配列だけです。undefined・NaN・True(Python の書き方)は「予期しない文字」になり、007 のような先頭の 0 も数値として認められません。

✕ {"id": 007, "deleted": undefined, "active": True}
○ {"id": 7, "deleted": null, "active": true}

JSON が複数並んでいる

ログなどで1行に1つずつ JSON が並んだもの(JSON Lines)は、全体では1つの JSON になりません。「JSONが終わったあとに余分な文字があります」と出たら、配列で囲むか、1行ずつ整形してください。

✕ {"id": 1}
  {"id": 2}
○ [{"id": 1}, {"id": 2}]