私は最も奇妙な振る舞いをしており、今数時間それに取り組んでいました. 大きくて複雑な JSON 文字列を AJAX 経由でサーバーに送信していますが、それをデコードすると、その要素にアクセスできません。しかし、デコードされた JSON 文字列をファイルに保存して再度開くと、突然、その要素を操作できるようになります。この振る舞いを説明することはできません。これが私のコードです。
これは動作しません
header('Access-Control-Allow-Origin: *');
$json = $_POST['json'];
$obj = json_decode($json, true);
// At this point I cannot work with the $obj elements
これは機能します
header('Access-Control-Allow-Origin: *');
$json = $_POST['json'];
$data = json_decode($json, true);
file_put_contents( 'test.txt', $data);
$file = file_get_contents('test.txt');
$obj = json_decode($file);
// At this point I can work with the $obj elements
別のサーバーから JSON を取得するため、ヘッダーが必要であることに注意してください。