JSONにコメントは書けない|書けない記法と代わりの残し方
JSONにはコメントを書く記法がなく、「//」や「/* */」を書くとJSONとして読むところでエラーになります。末尾のカンマや単引用符など、JavaScriptでは通るのにJSONでは通らない書き方と、VS Codeの設定ファイルのようにコメントを読めるファイルとの違い、説明を残す代わりの方法をまとめました。
公開読了目安 約5分
この記事の要点
- JSONの決まり(RFC 8259)には、コメントを書く記法が無い
- 「//」や「/* */」を書くと、決まりどおりにJSONを読むところでエラーになる
- VS Codeの設定ファイルのように、コメントを読める特別な形のJSONもある
- npmが読むpackage.jsonは、コメントを書くとエラーになって読めない
- 説明を残すなら、説明用の項目を足すか、YAMLで書いてJSONに変換する
目次
JSONには、コメントを書く記法がありません。 「//」や「/* */」で説明を書き足すと、決まりどおりにJSONを読むところでエラーになります。
説明を残したいときは、説明用の項目を足すか、コメントを書ける形式で書いてからJSONに直します。 この記事では、JSONで通らない書き方と、コメントを書けるファイルとの違い、代わりの残し方を順に整理します。
JSONの決まりにはコメントが無い
JSONの書き方は、RFC 8259という文書で決められています。
値として書けるのは、{ } のまとまり、[ ] の並び、文字列、数、true / false / null だけです。
すき間に置いてよいのは、空白・タブ・改行の4種類の文字に限られます。 コメントを書く記法は、この決まりのどこにもありません。
そのため、次のように説明を書き足すと読めなくなります。
{
// 表示する件数
"limit": 20
}
JSON整形ツールに貼って整形すると、Chromeでは「構文エラー: 2行目付近で予期しないトークンがあります」と出ます。 2行目の「//」のところで、次に項目の名前が来るはずだと判断されるからです。
JavaScriptでは通るのにJSONでは通らない書き方
JSONは、JavaScriptの書き方をもとに作られています。 見た目が似ているので、JavaScriptで通る書き方をそのまま持ち込みがちです。
次の書き方は、どれもJSONではエラーになります。
- コメント:
// 件数や/* 最大 */ - 単引用符:
'limit'(JSONの文字列は"で囲む) - 名前を囲まない:
limit: 20(名前も"limit"と囲む) - 末尾のカンマ: 最後の項目の後ろの
, - 決まりに無い値:
NaN、undefined、Infinity - 数の前の + と 0:
+20や007
RFC 8259は、007 のように数の頭に余計な0を付けることを認めていません。
数の前に付けてよい符号も、マイナスだけです。
JSON整形ツールは、ブラウザが返すエラーの文から行の番号を読み取って表示します。
NaN や +20 のように、Chromeの文に場所が含まれない誤りでは、行は出ません。
コメントを読める特別な形のJSONもある
拡張子が .json でも、コメントを書いてよいファイルがあります。
決めているのはJSONの決まりではなく、そのファイルを読むプログラムです。
- VS Codeの設定ファイル:
settings.jsonなどは「JSON with Comments」という形で読まれ、//と/* */を書ける。末尾のカンマも読めるが、警告が出る - tsconfig.json: TypeScriptの設定ファイル。手元のTypeScript 5.9で確かめると、コメントと末尾のカンマを書いてもそのまま読めた
- package.json: npm 10.9で確かめると、コメントを書いた時点で「EJSONPARSE」というエラーになった
npmの説明書も、package.jsonはJavaScriptの書き方ではなく、本物のJSONでなければならないとしています。
同じ .json でも、読むプログラムによって結果が分かれます。
コメントの代わりに説明を残す3つの方法
JSONのまま説明を残したいときは、書き方を変えます。
説明用の項目を足す
説明を、ふつうの項目として書き足す方法です。
{
"_comment": "1ページの件数",
"limit": 20
}
これは正しいJSONなので、どこでも読めます。 ただし、説明もデータの1つとして読み込まれます。 知らない項目があるとエラーにするプログラムでは使えません。
YAMLで書いてからJSONに直す
YAMLという形式なら、行の頭の # からあとをコメントとして書けます。
# 1ページに出す件数
limit: 20
# 並べる順
sort: new
コメントを残した元のファイルはYAMLで持ち、使うときだけJSONに変換します。 YAML⇔JSON変換でこのYAMLを変換すると、JSONが出たうえで「コメント 2 件は残せませんでした」と知らせます。
JSON5を使う
JSON5は、コメント・末尾のカンマ・単引用符などを足した、JSONの仲間の形式です。 読むプログラムがJSON5に対応しているときだけ使えます。 決まりどおりにJSONを読むところに渡すと、コメントの部分でエラーになります。
コメントの入ったJSONを貼るときの手順
人から受け取った設定を整形したいとき、コメントが入っていることがあります。 次の順で直すと、エラーの場所を追いやすくなります。
//から行の終わりまでと、/* */で囲まれた部分を消す("limit": 20 // 件数のように、行の途中にあるものも消す)- 最後の項目の後ろに残ったカンマを消す
- JSON整形ツールで整形し、エラーが出たら示された行と、その前の行を見る
エラーの読み方とよくあるミスは、JSONのエラーが出たときに整形して読みやすくするコツにまとめています。
関連記事
- JSONのエラーが出たときに整形して読みやすくするコツ(ツールの操作)
- YAMLとJSONを相互変換して中身を確かめる手順(YAMLとの行き来)
- 特殊文字をエスケープする使い方(文字列の中の記号)
参考・出典
- RFC 8259: The JavaScript Object Notation (JSON) Data Interchange Format — IETF (2026-10-16 閲覧)
- JSON editing in Visual Studio Code(JSON with Comments) — Visual Studio Code (2026-10-16 閲覧)
- package.json — npm Docs (2026-10-16 閲覧)
- The JSON5 Data Interchange Format — JSON5 (2026-10-16 閲覧)
本記事は上記の公的機関・公式情報源を参考にしています。最新の情報は各リンク先をご確認ください。
あわせて読みたい
同じテーマ・関連ツールの記事です。