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}]