ホームページ >バックエンド開発 >PHPチュートリアル >検証に合格したにもかかわらず、JSON_ERROR_SYNTAX エラーが発生するのはなぜですか?

検証に合格したにもかかわらず、JSON_ERROR_SYNTAX エラーが発生するのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-22 22:13:02195ブラウズ

Why Am I Getting a JSON_ERROR_SYNTAX Error Despite Passing Validation?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。