JSONデータ内の不可視文字をデバッグ

パースエラー、キーの不一致、バリデーション失敗を引き起こすJSON文字列内の隠れたホワイトスペース文字を検出します。JSONのホワイトスペース問題を可視化して修正します。

Unicode Whitespace

詳細な説明

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

デバッグプロセス

  1. JSONのパースに失敗した場合、ホワイトスペースビジュアライザーに貼り付けます。
  2. テキストの先頭で[BOM]を確認します。
  3. 文字列値やキー内の°(NBSP)、[ZWS]、[ZWJ]マーカーを探します。
  4. Line Endingsパネルで予期しないCRLFを確認します。
  5. Clean機能で問題のある文字を除去します。
  6. クリーニングされたJSONをコピーして正しくパースされることを確認します。

JSONのフォーマットとバリデーションには、クリーニング後にJSON Formatterを使用してください。

ユースケース

APIがデータベースとユーザー入力の文字列を結合して構築したJSONデータを送信すると400エラーを返します。ホワイトスペースビジュアライザーがユーザー入力内のゼロ幅スペースとデータベースエクスポートからのBOMを検出します。これらの文字をクリーニングするとAPIリクエストが成功します。

試してみる — Whitespace Visualizer

フルツールを開く