ホームページ >バックエンド開発 >PHPチュートリアル >PHP の「json_decode()」が一見有効な JSON で NULL を返すのはなぜですか?
有効と思われる 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 サイトの他の関連記事を参照してください。