优步通过product_id以多个产品时间回复估算/时间?

时间:2015-05-18 19:08:30

标签: time uber-api

我通过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 个答案:

答案 0 :(得分:1)

product_id可选参数未正确过滤结果。这是Uber API的一个已知错误。为了检索正确的estimate,您应该处理JSON响应并按product_id进行匹配,例如:

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

您不能只按0(在您的示例中为uberTimes[0].estimate)进行索引,因为响应不保证结果的顺序。