walkscore API JSON error

walkscore API JSON error

本文关键字:error JSON API walkscore      更新时间:2023-09-26

我正在尝试从walksore API获取walksore。我向我的php文件发出ajax请求,我得到了响应,但当我试图提醒walkscore时,我却得到了"JSON输入的意外结束"。

这是PHP(如果我直接通过URL测试它,它会给我一个完美的json格式的结果)

<? 
 function getWalkScore($lat, $lon, $address) {
  $address=urlencode($address);
  $url = "http://api.walkscore.com/score?format=json&address=$address";
  $url .= "&lat=$lat&lon=$lon&wsapikey=KEY";
  $str = @file_get_contents($url); 
  return $str; 
 } 
 $lat = $_GET['lat']; 
 $lon = $_GET['lon']; 
 $address = stripslashes($_GET['address']);
 $json = getWalkScore($lat,$lon,$address);
 echo $json; 
?>

这是我的ajax调用:

function loadStats() {
var geocoder = new google.maps.Geocoder;
var latlngStr = $("#loadStats").attr("data-latlng").split(',', 2);
var latlng = {lat: parseFloat(latlngStr[0]), lng: parseFloat(latlngStr[1])};
var reverseAddress='';
geocoder.geocode({'location': latlng}, function(results, status) {
 if (status === google.maps.GeocoderStatus.OK) {
  if (results[1]) {
   map.setZoom(11);      
  /*** Getting address needed for Walkability API call ***/  
   reverseAddress = results[1].formatted_address;
   //alert (parseFloat(latlngStr[0]));
   //alert(parseFloat(latlngStr[1]));
   //alert(reverseAddress);
   $.ajax({
        type:"GET",                        
        url:"scripts/walkscore.php",
        data: {"address" : reverseAddress ,
               "lat" : parseFloat(latlngStr[0]), 
               "lng" : parseFloat(latlngStr[1])                               
   },                    
    success:  function(response){   
    var obj = $.parseJSON(response);
    alert(obj.walkscore);               
    }
  });
  } else {
    alert('No results found');
      }
  } else {
     alert('Geocoder failed due to: ' + status);
    }
});   
//var Lat=$("#loadStats").attr("data-latlng").slice(0, $("#loadStats").attr("data-latlng").indexOf(",")) ;                   
                //var Lng=$("#loadStats").attr("data-latlng").slice($("#loadStats").attr("data-latlng").indexOf(",")+1,$("#loadStats").attr("data-latlng").lenght) ;
}

我不知道我做错了什么。这是我从API 获得的JSON

{ "status": 1 , "walkscore": 4 , "description": "Car-Dependent" , "updated": "2016-04-04 21:15:44.699150" , "logo_url": "https://cdn.walk.sc/images/api-logo.png" , "more_info_icon": "https://cdn.walk.sc/images/api-more-info.gif" , "more_info_link": "https://www.redfin.com/how-walk-score-works" , "ws_link": "https://www.walkscore.com/score/Acres-homes-Houston-TX-USA/lat=29.852555/lng=-95.447845/?utm_source=cinquedomande.com&utm_medium=ws_api&utm_campaign=ws_api" , "help_link": "https://www.redfin.com/how-walk-score-works" , "snapped_lat": 29.8530 , "snapped_lon": -95.4480 }

我想明白了。我愚蠢到把lng而不是lon传递到php脚本。