2013-12-07 3 views
0

Я использую Mapquest, пытаясь получить значения широты и долготы запрашиваемого адреса.Получение значений из массива JSON

Это мой призыв к их API:

$json = file_get_contents('http://www.mapquestapi.com/geocoding/v1/address?key=******&callback=renderOptions&outFormat=json&inFormat=json&json={location:{street:"Lancaster,PA"},options:{thumbMaps:false}}'); 

$output = json_decode($json, true); 

$lat = $output['results'][0]['locations'][0]['latLng']['lat']; 
$lng = $output['results'][0]['locations'][0]['latLng']['lng']; 

echo $lat.",".$lng; 

Как вы можете видеть, я пытаюсь повторить LAT и LNG на экране, но он пуст. Когда я print_r($json), я получаю следующее:

renderOptions ({ "Результаты": [{ "локаций": [{ "LatLng": { "LNG": - 76.30127, "ш": 40,03804},» adminArea4 «:» Ланкастер Каунти»,„adminArea5Type“:„Город“...............

Так что я знаю ответ, это нормально, что LAT и LNG являются но если я print_r($output), я ничего не получаю, и если я var_dump($output), я получаю NULL, и, очевидно, я не получаю данные LAT LNG.

Я не большой wi й JSON и массивы. Может ли кто-нибудь увидеть, что я делаю неправильно?

ответ

2

Необходимо удалить &callback=renderOptions с URL-адреса. Прямо сейчас сервер возвращает JSON P (с указанной функцией обратного вызова). Это недействительно JSON, и поэтому json_decode возвращает NULL (как указано в руководстве)

+0

Большое вам спасибо. Я бы никогда не догадался, или, если бы я это сделал, это было бы слишком поздно! – TheCarver

+1

Добро пожаловать;) Я честно знаю, потому что я провел последние 2 недели, работая с JSONP (пока мы не решили использовать вместо нее). – kero

Смежные вопросы