JSONデータ内の不可視文字をデバッグ
パースエラー、キーの不一致、バリデーション失敗を引き起こすJSON文字列内の隠れたホワイトスペース文字を検出します。JSONのホワイトスペース問題を可視化して修正します。
詳細な説明
JSONの隠れた文字
JSONは構文に厳格であり、JSONデータに潜む不可視の文字はパース失敗、キーの不一致、データ破損を引き起こす可能性があります。ホワイトスペースビジュアライザーはこれらの隠れた問題を見つけるのに役立ちます。
一般的なJSONのホワイトスペース問題
1. 先頭のBOM
JSON仕様(RFC 8259)は、JSONテキストがBOMで始まるべきではないと規定しています。しかし、Windowsのメモ帳やExcelのエクスポートによるファイルには含まれる場合があります:
[BOM]{"name": "John"} // 多くのパーサーがこれを拒否
2. 文字列値内のNBSP
JSON値内のノーブレークスペースは正しく見えますが比較失敗を引き起こします:
{"city": "New York"} // "New"と"York"の間にNBSP
"New York"(通常スペース)と比較すると失敗します。
3. キー内のゼロ幅文字
JSONキー内のZWSやZWJ文字により、見た目が同じでも実際には異なる2つのキーが作成されます:
{
"user\u200Bname": "alice", // ZWSを含む
"username": "bob" // クリーンなキー
}
どちらのキーもビューアでは"username"として表示されますが、実際には異なります。
4. 複数行文字列内のCRLF
JSON文字列では改行に\nを使用すべきです。CRLFが値に含まれると、\rがそのまま渡されるか下流で問題を引き起こす可能性があります:
{"message": "line1\r\nline2"} // 値に埋め込まれたCRLF
デバッグプロセス
- JSONのパースに失敗した場合、ホワイトスペースビジュアライザーに貼り付けます。
- テキストの先頭で[BOM]を確認します。
- 文字列値やキー内の°(NBSP)、[ZWS]、[ZWJ]マーカーを探します。
- Line Endingsパネルで予期しないCRLFを確認します。
- Clean機能で問題のある文字を除去します。
- クリーニングされたJSONをコピーして正しくパースされることを確認します。
JSONのフォーマットとバリデーションには、クリーニング後にJSON Formatterを使用してください。
ユースケース
APIがデータベースとユーザー入力の文字列を結合して構築したJSONデータを送信すると400エラーを返します。ホワイトスペースビジュアライザーがユーザー入力内のゼロ幅スペースとデータベースエクスポートからのBOMを検出します。これらの文字をクリーニングするとAPIリクエストが成功します。