0

私はajaxを使用してサーバーを呼び出し、いくつかのユーザーデータを取得しています。サーバーは、以下のようにフォーマットされた配列を戻る:jqueryを使用して多次元配列のデータにアクセスする方法は?

array:6 [▼ 
    0 => array:17 [▼ 
    "id" => 334 
    "provider" => "some_provider" 
    "option_id" => "x124223" 
    "option_title" => "title" 
    "api_parameter" => "parameter" 
    "chart_title" => "title" 
    "chart_color" => "#6a76fc" 
    "chart_target" => "2220" 
    "chart_type" => "line" 
    "chart_size" => "4" 
    "chart_data" => array:7 [▼ 
     239 => array:2 [▼ 
     "data" => 2114 
     "created_at" => "14/August" 
     ] 
     240 => array:2 [▼ 
     "data" => 2114 
     "created_at" => "15/August" 
     ] 
     241 => array:2 [▶] 
     242 => array:2 [▶] 
     243 => array:2 [▶] 
     244 => array:2 [▶] 
     245 => array:2 [▶] 
    ] 
    "average" => 2122.0 
    "current" => array:2 [▶] 
    "last" => array:2 [▶] 
    "current_status_icon" => "md-trending-neutral" 
    "current_status_color" => "#3DDCF7" 
    "status_message" => "hmm... The needle didnt move." 
    ] 
    1 => array:17 [▼ 
    "id" => 345 
    "provider" => "some_other_provider" 
    "option_id" => "x124" 
    "option_title" => "Title" 
    "api_parameter" => "parameter" 
    "chart_title" => "title" 
    "chart_color" => "#6A76FC" 
    "chart_target" => "Set a target" 
    "chart_type" => "line" 
    "chart_size" => "4" 
    "chart_data" => array:7 [▼ 
     202 => array:2 [▼ 
     "data" => 5 
     "created_at" => "13/August" 
     ] 
     203 => array:2 [▼ 
     "data" => 5 
     "created_at" => "14/August" 
     ] 
     204 => array:2 [▶] 
     205 => array:2 [▶] 
     206 => array:2 [▶] 
     207 => array:2 [▶] 
     208 => array:2 [▶] 
    ] 
    "average" => 5.0 
    "current" => array:2 [▼ 
     "data" => 5 
     "created_at" => "16/August" 
    ] 
    "last" => array:2 [▼ 
     "data" => 5 
     "created_at" => "16/August" 
    ] 
    "current_status_icon" => "md-trending-neutral" 
    "current_status_color" => "#3DDCF7" 
    "status_message" => "hmm... The needle didnt move." 
    ] 

私は、foreachループ

$.ajax({url: "/url/to/server", success: function(result){ 
    result.forEach(function(item) { 
     console.log(item['chart_data']['data']); 
    }); 
    }, complete: function() { 
     // Schedule the next request when the current one's complete 
     setTimeout(checkForUpdates, 3000); 
    } 
    }); 
}); 

を使用してアレイ内のデータにアクセスしようとする。しかし、これはちょうどundefinedをログに記録します。最上位の配列のそれぞれにネストされたchart_dataにアクセスするにはどうすればよいですか?

+1

あなたがネストされた配列にアクセスする必要があります: 'chart_data'は' data'性質を持っている要素を持つ配列です

は、しかし、私の推測では、これが機能するということです。だから、別のネストされたループが必要です – trincot

+0

@trincotありがとう、私はこれを試してみました。 'Uncaught TypeError:item.chart_data.forEachは関数ではありません。 'というエラーが出ました。 – kevinabraham

+0

JSON出力はどこから来ていますか? PHP?構文が正しくありません。 'console.log(JSON.stringify(result))'を実行したときの出力を質問に含めると便利です。そうすれば正しいJSONが表示されます。 – trincot

答えて

2

共有している構造がPHP表記で出力され、JavaScriptで受け取ったJSONを表していないため、データ構造が明確ではありません。

result.forEach(function(item) { 
    Object.keys(item.chart_data).forEach(function (key) { 
     console.log(item.chart_data[key].data); 
    }); 
}); 
+0

これは大変ありがとう@trincotありがとうございました。 – kevinabraham

関連する問題