jqueryのajax通信にてjsonデータを複数同時に取得する関数を作成したいと考えております

URLとパラメータの連想配列を配列requestに格納し、
格納されている分だけgetDataMultipulメソッドにて実行
全て取得した後に、処理を続行させる形の作りを検討しているのですが、

whenで並列実行する方法と
その結果を一度に取得し、配列に格納する方法が思いつかずやなんでおります。

何かいい方法ご存知でしたらご教授いただけませんでしょうか?

宜しくお願いいたします。

var request = [
  {"url":"URLその1","params":{パラメータ1}},
  {"url":"URLその2","params":{パラメータ2}},
  {"url":"URLその3","params":{パラメータ3}},
  ・・・
]

getDataMultipul(request).done(
  function(data){
    //成功時の処理
  }
).faile(function(){
  //失敗時の処理 
});


function getJson(request,params){
  var defer = $.Deferred();

  $.ajax({
    url         : request,
    type        : 'POST',
    data        : JSON.stringify(params),
    contentType : 'application/json',
    dataType    : 'json',
    success     : defer.resolve,
    error       : defer.reject,
    timeout     : TIMEOUT
   });

   return defer.promise();
}


function getDataMultipul(arr){
  var defer = $.Deferred();
  $.when(
    //配列に入っているURLとパラメータでデータを取得
    getJson(arr[0]["url"],arr[0]["params"]),
    getJson(arr[1]["url"],arr[1]["params"]),
    getJson(arr[2]["url"],arr[2]["params"]),
    …
  ).done(function(ret1,re2,re3・・・){
    //配列分全ての処理が完了したらresolve
    var returns = [
      ret1,
      ret2,
      ret3,
      …
    ]
    defer.resolve(returns);
  }).fail(function(){
    defer.reject() ;
  })
  return defer.promise();
}

追記
Jqueryは2系、ECMA5.1にて開発を行っております。