JSONの配列から値を取得したい。
前提・実現したいこと
Laravel5.5を使って、システム開発を行っています。
Ajaxでサーバー側のPHPのプログラムで処理した結果を、クライアントのJSで使用することを考えています。
PHP側では配列を生成し、JSONにエンコードしてJS側に返しています。
PHP
1$emable_times = [ 2 0 => '00:00', 3 1 => '00:15', 4 2 => '00:30', 5 3 => '00:45', 6・ 7・ 8・ 9 64 => '16:00', 10 65 => '16:15', 11 66 => '16:30', 12 67 => '16:45', 13 68 => '17:00', 14 69 => '17:15', 15 70 => '17:30', 16 71 => '17:45', 17 72 => '18:00', 18]; 19 20return json_encode([ 21 'departure' => $emable_times, 22 'arrival' => NULL, 23 'ex' => NULL, 24 ],JSON_PRETTY_PRINT);
呼び出されるJS側は受け取ったJSONをパースして、必要な配列の値を以下の様に取得しています。
JavaScript
1 $.ajax({ 2 type: 'POST', 3 contentType: false, 4 processData: false, 5 url: send_url, 6 data: formData, 7 success: function(rdata) { 8 var enableTimes; 9 var arrEnableTimes; 10 var ex; 11 12 JSON.parse(rdata, function(key, value){ 13 if(key == "departure"){ 14 enableTimes = value; 15 } 16 if(key == "arrival"){ 17 arrEnableTimes = value; 18 } 19 if(key == "ex"){ 20 ex = value; 21 } 22 }); 23console.log(enableTimes); 24 }, 25 error: function(data) { 26 //alert('エラーが発生しました。'); 27 }, 28 }); 29</script>
console.log(enableTimes) で取得内容を確認しましたが、配列に期待される値(PHP側で詰めた配列の中身)が入ってませんでした。
→空要素がPHPで詰めた分 入った配列になっていました。
補足情報(FW/ツールのバージョンなど)
◆動作環境
・Windows10 Pro 64bit
・Apache2.4
・PHP7.1
・Laravel5.5
・MySQL5.7
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/05/15 12:45