JSON のシングルクォートを修正
JSON の文字列とオブジェクトキーは二重引用符を使う必要があります。シングルクォートの値は JavaScript の断片、Python 風の出力、LLM の応答でよく見かけます。
なぜシングルクォートが通らないのか
厳格な JSON はダブルクォートの文字列だけを受け入れます。たとえ JavaScript の開発者には見慣れた形でも、パーサは {'name':'Ada'} を拒否します。
エラーの例
{ 'name': 'Ada', 'active': true }
修正後の JSON
{ "name": "Ada", "active": true }
シングルクォートのテキストはどこから来るのか
Python の repr() や dict の出力、コンソールからコピーした JavaScript のオブジェクトリテラル、Ruby の hash inspect、そして多くの LLM 応答などは、すべてシングルクォートを使います。これらは JSON ではなく、似ているだけの各言語ネイティブのリテラルです。
なぜ find-and-replace は危険か
' を " に一律置換すると、{ 'note': 'it\'s fine' } のようにアポストロフィを含む値が壊れます。置換後は内側のアポストロフィが新しい文字列の区切りとぶつかります。安全なコンバータは、引用符の文脈を追跡し、区切り文字だけを差し替えて中身には触れません。
安全な変換戦略
まず入力をトークン化します:テキストを走査し、開始の引用符で文字列の境界を識別し、各トークンをダブルクォートで組み直します —— 内部のダブルクォートはエスケープし、不要になったエスケープ済みシングルクォートは戻します。本サイトの修復ツールはこれを 1 度のパスで行います。
関連する JSON 構文エラー
シングルクォート JSON は、同じ payload に他の JavaScript 風の問題 —— キーの無引用、末尾カンマ、行コメント、undefined 値 —— を抱えていることが多いです。引用符を直したあと、残りを洗い出すために検証してください。
FAQ
Q:JSON5 ではシングルクォート文字列は有効ですか? A:はい、JSON5 は許容します。Q:Python の json.loads はシングルクォートを受け入れますか? A:いいえ —— 本当に Python リテラルなら ast.literal_eval を使い、そうでなければ先に引用符を変換してください。Q:JSON のキーもダブルクォートが必要ですか? A:はい、キーは文字列ですから同じ規則です。
JSON 修復ガイド
トピックハブ
- JSON Parse Errors: Read the Message, Jump to the Fix
- Fix Invalid JSON: From 'What's Wrong' to a Clean File
- JSON Formatter, Validator, Viewer: Pick the Right Tool
- Repair LLM JSON Output: Handling Almost-JSON from AI
- Privacy: JSON Tools That Don't Leave Your Browser
- JSON Interop: YAML, CSV, XML, JWT, Schema
個別ガイド
- Base64 文字列のデコード方法(および JWT ペイロード)
- URL エンコーディング:クエリパラメータとパスをパーセントエンコードする
- YAML を JSON に変換(インデントエラーを避ける)
- JSON を CSV に変換:オブジェクト配列をフラット化
- JSON を XML に変換:ルート要素・属性・配列
- JSON を文字列リテラルとしてエスケープ(二重エンコードされた JSON のデコード)
- JSON の末尾カンマを修正
- JSON の引用符なしキーを修正
- LLM が出力した JSON を修復する
- JSON 解析エラー「Expected Property Name」を修正
- JSON と JavaScript オブジェクトリテラルの違い
- API リクエスト前に JSON を検証する
- JSON フォーマッタ vs JSON Repair
- JSON の Unexpected Token エラーを修正
- JSON から JavaScript オブジェクトへの変換ツール