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

PHP の「json_decode()」が一見有効な JSON で NULL を返すのはなぜですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-28 19:17:11686ブラウズ

Why Does PHP's `json_decode()` Return NULL with Seemingly Valid JSON?

有効と思われる JSON を指定すると PHP json_decode() が NULL を返す: 解決策

プレーン テキストで保存された JSON オブジェクトをデコードしようとした場合PHP の json_decode() 関数を使用してファイルを作成すると、一部のユーザーは関数が NULL を返すという問題に遭遇しました。 JSON バリデーターに対してテストすると、JSON は有効であるように見えます。

提供されたコード スニペットを調べると、JSON オブジェクトは適切にフォーマットされていることがわかります。ただし、ファイルには、デコード プロセスを妨げる可能性のある不可視の文字または非 UTF-8 文字が含まれている可能性があります。

この問題を解決するには、ユーザーが提案した解決策として、PHP の preg_replace() 関数を使用して、 JSON 文字列から非 UTF-8 文字を削除します。変更されたコードは次のようになります。

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

この正規表現は、UTF-8 文字範囲外の文字を空の文字列に置き換え、JSON 文字列に有効な文字のみが含まれるようにします。

この変更を適用すると、PHP の json_decode() 関数は JSON オブジェクトを正常にデコードし、JSON データを表す PHP オブジェクトまたは配列を返すことができるようになります。このソリューションは、この問題に直面している多くのユーザーにとって効率的に機能することが報告されています。

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

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