На самом деле есть две проблемы:
1) для доступа к контенту вам необходимо:
parsed_json.data.time_zone [0] .utcOffset;
2) Это немного сложнее - вы используете асинхронный обратный вызов ajax - success () не вызывается до того, как ваша программа завершает отправку запроса ajax и возвращает его, и она не возвращает свои результаты родительскому методу.
Практически невозможно сделать это так, как вы хотите, если только вы не используете синхронную выборку (плохая идея, поскольку она блокирует ваш браузер до получения ответа).
Вместо этого возьмите параметр обратного вызова, который будет функцией, в качестве параметра вашей функции и вызовите его с результатом, как только он прибудет:
т.е.
function getTimeZone(latlong, callback) {
jQuery(document).ready(function ($) {
$.ajax({
url: "http://www.worldweatheronline.com/feed/tz.ashx?key=[removed]&q=" + latlong + "&format=json",
dataType: "jsonp",
success: function (parsed_json) {
console.log(parsed_json.time_zone.utcOffset);
callback(latlong, parsed_json.data.time_zone[0].utcOffset);
},
error: function (parsed_json) {
//console.log("Error: " + parsed_json);
}
});
});
}
Затем использовать его:
getTimeZone(myLatLong, function(latLong, utcOffset) {
// ... do something with utcOffset here ...
});