Получить определенные данные из json (google geocode api)

Я пытаюсь получить определенные данные из моего запроса json из API геокодирования Google.

Мой код выглядит так:

$('#test').on('focusout', function() {
    var address = $('#ustreet').val() + " " + $('#ustreetnr').val() + ", " + $('#uplz').val(); 
    $('#uaddress').val(address);
    $.ajax({
        url: 'https://maps.googleapis.com/maps/api/geocode/json?address=' + address,
        dataType: 'jsonp',
        success: function(json) {
            console.log(json.geometry.location.lat);
            console.log(json);
        }
    });
});

Мои результаты запроса в порядке и выглядят так:

http://maps.google.com/maps/api/geocode/json?address=Celler%20Weg%2055,%2021079

Но у меня возникли проблемы с получением только значений «широта и долгота» из геометрии-> местоположения и сохранением их в var.

ReferenceError: json не определен

Я, конечно, новичок в JavaScript/jQuery, но для другого проекта с другим API он отлично работал так же, как я пробовал здесь...

Надеюсь, здесь мне помогут :)

Привет из Польши


person Kuba    schedule 19.04.2018    source источник


Ответы (1)


Измените dataType: 'jsonp' на dataType: 'json'.

JSONP означает JSON с дополнением.

dataType: jsonp предназначен для междоменных запросов, то есть запросов к разным доменам. dataType: json для запроса того же домена и того же источника.

$.ajax({
    url: 'https://maps.googleapis.com/maps/api/geocode/json?address=Prunesstraat 4 opheusden',
    dataType: 'json',
    success: function(json) {
        console.log(json);
    }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

person Red    schedule 19.04.2018
comment
Хорошо, это работает. Я использовал jsonp, потому что прочитал это здесь: ссылка и подумал, что мне нужно использовать jsonp по междоменным причинам. И как именно я могу использовать console.log для определенных данных, как указано в вопросе? :) - person Kuba; 19.04.2018
comment
Да, но вы не делаете междоменный запрос. - person Red; 19.04.2018
comment
Можете ли вы быстро опубликовать, как я могу получить доступ/получить только определенные данные из запроса json? Было бы очень приятно :) - person Kuba; 19.04.2018
comment
Да, конечно, какое имущество вы хотите получить? - person Red; 19.04.2018
comment
Я хочу получить значения широты и долготы из результатов => 0 => геометрия => местоположение - person Kuba; 19.04.2018
comment
Разобрался: console.log(json.results[0].geometry.location.lat); - person Kuba; 19.04.2018
comment
Да, это действительно правильный способ получить нужные значения. - person Red; 19.04.2018