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

DDD
リリース: 2024-10-22 22:02:29
オリジナル
457 人が閲覧しました

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

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!