2015-05-18 34 views
0

我正在通過product_id請求產品時間,並且我獲得了所有產品時間的完整列表,而不是僅獲得單個響應。優步估計/時間由product_id響應多個產品時間?

var productID = "37a94557-682f-4562-ba62-2448f80d3ddd" ; 
    $http({ 
     url: "https://api.uber.com/v1/estimates/time" , 
     headers: { 
      Authorization: "Token " + uberServerToken 
     }, 
     params: { 
      start_latitude: setLat, 
      start_longitude: setLon, 
      product_id: productID 
     } 
     }).success(function(data, status, headers, config) { 
      uberTimes = data["times"] ; 
      uberTime = Math.round(uberTimes[0].estimate/60) ; 
}) ; 

目前,我得到的迴應是:

times: [{localized_display_name:uberX, estimate:455, display_name:uberX,…},…]  
    0: {localized_display_name:uberX, estimate:455, display_name:uberX,…} 
    display_name: "uberX" 
    estimate: 455 
    localized_display_name: "uberX" 
    product_id: "37a94557-682f-4562-ba62-2448f80d3ddd" 

    1: {localized_display_name:uberXL, estimate:455, display_name:uberXL,…} 
    display_name: "uberXL" 
    estimate: 455 
    localized_display_name: "uberXL" 
    product_id: "aa0109f3-15db-45ca-b0cc-5019e8557792" 

1:我認爲我只會得到一個單一產品時代信息,因爲我用了可選的「PRODUCT_ID」,爲什麼我收到多個產品時間? 2:同樣,假設我可以得到單一產品時間,我仍然會以同樣的方式訪問它:「uberTimes [0] .estimate」?

回答

1

product_id可選參數不會正確過濾結果。這是Uber API的一個已知錯誤。爲了獲取正確的estimate,你應該處理由product_id JSON響應和匹配,如:

var myEstimate; 
for result in results { 
    if result["product_id"] == product_id { 
     myEstimate = result["estimate"]; 
    } 
} 

你不能僅僅通過0(uberTimes[0].estimate在你的例子),索引,因爲響應不保證結果的排序。