ホームページ >バックエンド開発 >PHPチュートリアル >検証に合格したにもかかわらず、JSON_ERROR_SYNTAX エラーが発生するのはなぜですか?
JSON デコード エラー:
オンライン フォーマッタを介して検証を通過したにもかかわらず、json_decode() を使用して JSON データをデコードするときに JSON_ERROR_SYNTAX エラーが発生します。
隠し文字と無効な JSON:
根本的な問題は、JSON テキストではすぐには分からない隠し文字にあります。これらの文字は多くの場合、目に見えず、JSON の構文を混乱させ、デコーダーの失敗を引き起こします。
解決策:
この問題に対処するには、次のコードを実装できます。応答:
<code class="php">$json = file_get_contents("http://yourwebsite.com/JsonData"); // Remove unwanted characters for ($i = 0; $i <= 31; ++$i) { $json = str_replace(chr($i), "", $json); } $json = str_replace(chr(127), "", $json); // Handle UTF-8 BOM if (0 === strpos(bin2hex($json), 'efbbbf')) { $json = substr($json, 3); } $obj = json_decode($json);</code>
このコードは、制御文字や UTF-8 BOM (0xef-0xbb-0xbf) を含む不要な文字を削除します。これらの文字を削除すると、デコーダは JSON データを正しく解析できるようになります。
以上が検証に合格したにもかかわらず、JSON_ERROR_SYNTAX エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。