この記事の例では、NULL を返す Json 文字列のデコードを PHP で処理するための解決策について説明します。参考のためにみんなで共有してください。具体的な方法は以下の通りです
一般的に、php は json_decode() 関数を使用して JSON 文字列をデコードします。2 番目のパラメーターが true の場合は配列を返し、false の場合はオブジェクトを返します。 NULL が返された場合、エラーが報告され、取得された整数値がエラー プロンプト に対応します。下の写真に示すように:
より一般的な json_last_error() は整数 4 です。これは、json 文字列が json_decode よりも前に不完全であるため、構文が間違っていることを意味します。
クライアントによって送信された個々の文字が json の形式に影響を与える可能性があります。JS を使用してフィルタリングすると、主に改行、スペース、HTML タグがフィルタリングされます。
実装コードは次のとおりです:
上記の状況は、処理のために json 文字列データをサーバーに送信する必要があり、クライアントでのみフィルターできるという事実を表しています。
json_decode($str) が NULL を返すいくつかの理由:
1.$str は UTF-8 でのみエンコードできます
2.要素の末尾にカンマは使用できません(PHPの配列とは異なります)
3. 要素には単一引用符を使用できません
4. 要素値の途中にスペースや n を入れることはできないため、置き換える必要があります
上記の状況に遭遇した場合は、上記の方法に従って対処できます。この記事が皆様の PHP プログラミングのお役に立てれば幸いです。
b.php は、json コンテンツを取得するときに Cookie 値を送信する必要があります。そうでない場合、a.php は空のコンテンツのみを返します。
キーを一重引用符で囲んで試してみてください。
$arr = array ('アメニティ' =>array ('レストラン/カフェ' => array('教室' => '教室')));
echo json_encode($arr) ;