フォーマット エラー
json は utf-8 でエンコードされた文字のみを受け入れるため、json_encode() のパラメーターは utf-8 である必要があります。そうしないと、null 文字または null が返されます。中国語で GB2312 エンコードを使用する場合、または外国語で ISO-8859-1 エンコードを使用する場合は、この点に特別な注意を払う必要があります。
$bad_json = "{ 'bar': 'baz' }"; $bad_json = '{ bar: "baz" }'; $bad_json = '{ "bar": "baz", }';
これら 3 つの文字列に対して json_decode() を実行すると、null が返され、エラーが報告されます。
最初の間違いは、JSON 区切り文字 (区切り文字) では単一引用符ではなく二重引用符のみが使用できることです。 2 番目の間違いは、JSON の名前と値のペアの「名前」 (コロンの左側の部分) では、いかなる場合でも二重引用符を使用する必要があることです。 3 番目のエラーは、最後の値の後にカンマを追加できないことです。
さらに、json はオブジェクトと配列を表すためにのみ使用できます。文字列または値に対して json_decode() を使用すると、null が返されます。
形式は正しいですが、エラーが報告されます
最初のタイプ、文字エンコーディングの問題
json は utf-8 でエンコードされた文字のみを受け入れるため、したがって、 json_encode() のパラメータは utf-8 でエンコードされている必要があります。そうしないと、null 文字または null が返されます。中国語で GB2312 エンコードを使用する場合、または外国語で ISO-8859-1 エンコードを使用する場合は、この点に特別な注意を払う必要があります。
2 番目のタイプの BOM 問題
BOM ヘッダーは UTF-8 署名とも呼ばれます。実際、UTF-8 BOM は UFT-8 には影響しません。UTF をサポートするためのものです。 -16 および UTF-32。BOM が追加されました。BOM 署名は、編集者の識別を容易にするために、現在のファイルがどのエンコーディングを使用しているかをエディターに伝えることを意味します。ただし、BOM はエディターには表示されませんが、出力は生成されます。通常、PHP コードをメモ帳などで編集して保存した場合、UTF-8 でエンコードされたファイルを保存すると、ファイルの先頭に 3 つの不可視文字 (0xEF 0xBB 0xBF、または BOM) が挿入されます。ファイル。これは、メモ帳などの編集者がファイルが UTF-8 でエンコードされているかどうかを識別できるようにするために使用される隠し文字の文字列です。 (データを返すときに BOM ヘッダーが自動的に追加される理由は不明です)。
rree以上がjson形式エラーとはどういう意味ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。