本文へスキップ
jsonbeautifiers
日本語
Python CPython 3.14.3 上でパーサーを実行して確認しました。

Expecting ',' delimiter: line L column C (char N)

パーサーは、現在のコンテナがカンマで続くことを期待していました。ややこしいのは、位置が一見まったく問題なさそうな場所を指すことが多い点です。本当の間違いは少し手前にあります。たいていは、意図より早く文字列を終わらせてしまった引用符です。

JSONを貼り付けて、壊れている箇所を正確に確認する

入力

貼り付けたものがブラウザの外に出ることはありません。 connect-src の許可リストにより、これは約束ではなくブラウザによる保証になっています。 自分で確かめる

実際の原因

どれが答えになることが多いか、その順に並べています。

  1. 01 文字列の中のエスケープされていないダブルクォート

    内側の引用符が文字列を早く閉じてしまい、その後ろのテキストが、カンマを期待していた場所で新しいトークンとして読まれます。このエラーに関するStack Overflowの最上位の質問は、そのものずばり「Valid JSON giving JSONDecodeError」というタイトルで、体験のすべてが1行に凝縮されています。

    壊れる例

    {"quote": "he said "yes" loudly"}

    動く例

    {"quote": "he said \"yes\" loudly"}
  2. 02 本当にカンマが抜けている

    オブジェクトの2つのメンバーの間、あるいは配列の2つの要素の間です。

  3. 03 閉じ引用符の直前にある単独のバックスラッシュ

    バックスラッシュで終わるWindowsのパスは引用符をエスケープしてしまい、文字列が続いてしまうため、次のカンマはパーサーの期待する場所に現れません。

  4. 04 ファイルが途中で切れている

    位置が入力の末尾なら、書き間違いではなくドキュメントが切れています。

ほかのランタイムでの同じ間違い

根本にある問題は同一で、違うのは文言だけです。同僚がこれらのどれかを報告してきたなら、見ているものはあなたと同じです。

JavaScript (V8) Expected ',' or '}' after property value in JSON at position N

よくある質問

JSONは正しく見えるのに、なぜ失敗するのですか?
報告された位置そのものではなく、その直前の文字を見てください。早く終わってしまった文字列は、引用符の数を数えるまで目に見えません。文字列に色を付けるバリデーターに貼り付ければ、1秒で分かります。
これを起こさないようにするには?
文字列連結でJSONを組み立てないことです。dictを作ってjson.dumpsを呼べば、仕組みとしてすべての値が正しくエスケープされます。

今すぐ直す

上のツールにペイロードを貼り付けるか、この用途のために作られたツールに直接進んでください。

文字列を色分けして確認する