ホームページ  >  記事  >  バックエンド開発  >  有効な JSON 形式にもかかわらず、JSON_DECODE() の「SYNTAX ERROR」を解決するにはどうすればよいですか?

有効な JSON 形式にもかかわらず、JSON_DECODE() の「SYNTAX ERROR」を解決するにはどうすればよいですか?

DDD
DDDオリジナル
2024-10-22 22:02:29458ブラウズ

How to Resolve

オンライン フォーマッタでは有効な JSON にもかかわらず、JSON_ERROR_SYNTAX

外部フォーマッタでは JSON が有効に見えるにもかかわらず、json_decode() からの "SYNTAX ERROR" 応答が発生しました困惑するかもしれません。これは包括的な解決策です:

隠し文字の削除:

非表示の文字は構文エラーを引き起こす可能性があります。次のコードを使用してこれらの文字を削除します:

<code class="php">$json = file_get_contents('http://www.mywebservice');

// Remove unwanted characters
for ($i = 0; $i <= 31; ++$i) { $json = str_replace(chr($i), "", $json); }
$json = str_replace(chr(127), "", $json);

// Handle BOM (Byte Order Mark)
if (0 === strpos(bin2hex($json), 'efbbbf')) { $json = substr($json, 3); }</code>

クリーン化された JSON のデコード:

隠し文字が削除されたので、JSON をデコードします:

<code class="php">$obj = json_decode($json);</code>

エラー処理:

それでもデコードが失敗する場合は、json_last_error() を使用して特定のエラー コードを確認してください:

<code class="php">switch (json_last_error()) {
    case JSON_ERROR_NONE:
        echo 'JSON_ERROR_NONE';
        break;
    case JSON_ERROR_DEPTH:
        echo 'JSON_ERROR_DEPTH';
        break;
    // ... Other error codes
    default:
        echo 'Unknown Error';
        break;
}</code>

次の手順に従うことで、 JSON 構文エラーを修正し、JSON データを正常にデコードできます。 PHP 5.5 の json_last_error_msg() 関数は追加のエラー詳細を提供しますが、隠し文字やデコードの問題を解決した後は必要ない場合があります。

以上が有効な JSON 形式にもかかわらず、JSON_DECODE() の「SYNTAX ERROR」を解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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