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

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

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-27 03:52:09730ブラウズ

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

一見有効な JSON での PHP json_decode() デコードの問題

PHP の json_decode 関数を使用してプレーンテキスト ファイルに保存されている JSON をデコードしようとすると、一部のユーザーは、JSON が明らかに有効であるにもかかわらず、不可解な NULL が返されることに遭遇します。

影響を受ける JSON は、多くの場合、JSON スキーマ検証標準に準拠しており、http://jsonlint.com/ などのプラットフォームでの厳格なテストに合格しています。ただし、PHP で JSON をデコードする場合、それはわかりにくいままです。

この問題を解決するには、次のコード行をデコード プロセスに組み込むことを検討してください。

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

この変更された json_decode 呼び出しは、 JSON 文字列内の非表示または印刷不可能な文字 (制御文字、不正な UTF-8 文字、特殊文字など) と空の文字列。これらの文字は、デコード中に不一致を引き起こし、結果として NULL が返される可能性があります。

このような文字をフィルタリングして除外することにより、変更されたコードにより、 json_decode 関数が JSON 文字列を正確に解析できるようになり、JSON 文字列の有効な PHP 表現を返すことができるようになります。 JSON データ。

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

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