ホームページ >バックエンド開発 >PHPチュートリアル >有効な JSON にもかかわらず、「json_decode()」が NULL を返すのはなぜですか?

有効な JSON にもかかわらず、「json_decode()」が NULL を返すのはなぜですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-28 16:12:15654ブラウズ

Why Does `json_decode()` Return NULL Despite Valid JSON?

有効な JSON を使用した json_decode(): ケーススタディ

json_decode() を使用してテキスト ファイルに保存されている JSON オブジェクトをデコードしようとする場合の場合、JSON バリデーターにとって JSON が有効に見えるにもかかわらず、関数が NULL を返すシナリオが発生する可能性があります。ファイルは読み取り可能であり、JSON 構文は正しいように見えるため、これは混乱する可能性があります。

そのような場合は、JSON 文字列に紛れ込んだ可能性のある印刷不可能な文字を確認することをお勧めします。これらの文字はデコード プロセスを中断し、json_decode() が失敗する可能性があります。

この問題を解決するには、正規表現を使用して JSON 文字列をサニタイズし、これらの印刷不可能な文字を削除します。次のコード スニペットは、これを示しています。

$json_string = preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $json_string);
$json_object = json_decode($json_string, true);

このコードは、$json_string 変数内のすべての印刷不可能な文字を空の文字列に置き換えます。 json_decode() の true パラメーターを使用すると、デコードされた結果が連想配列として返されるようになり、その後の処理に便利になる可能性があります。

印刷不可能な文字を削除することで、サニタイズされた JSON 文字列を正常にデコードできます。 、 json_decode() が NULL を返すのを防ぎます。これにより、有効な JSON データを確実に PHP データ構造に変換してさらに使用できるようになります。

以上が有効な JSON にもかかわらず、「json_decode()」が NULL を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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