Как объединить два разных URL для разбора, используя jquery - PullRequest
0 голосов
/ 15 февраля 2020

Я хочу попробовать разобрать два разных URL, но мой код не работает: я пробовал два разных примера:

   var url = "https://nominatim.openstreetmap.org/reverse.php?zoom=15&format=json&lat=45.9660047&lon=13.6408311";
var url2 = "https://nominatim.openstreetmap.org/reverse.php?zoom=18&format=json&lat=45.9660047&lon=13.6408311";

$.when($.getJSON(url), $.getJSON(url2)).done(function (data1, data2) {

    alert(data1.address.village);
    alert(data2.address.city);

    //do stuff with 'data' and 'data2'
});


$.getJSON("https://nominatim.openstreetmap.org/reverse.php?zoom=18&format=json&lat=45.9660047&lon=13.6408311", function (data) {
    $.getJSON("https://nominatim.openstreetmap.org/reverse.php?zoom=18&format=json&lat=45.9660047&lon=13.6408311", function (data2) {
        var concatenatedJson = $.extend({}, data, data2);

        alert(concatenatedJson.address.road);

    });
});

Ответы [ 2 ]

0 голосов
/ 15 февраля 2020

единственная ошибка, которую вы делаете, это при условии данных, которые вы получаете

простого console.log(data1) будет достаточно, чтобы сказать вам, что данные, полученные в data1, не являются данные из URL, но массив с немного большей информацией

enter image description here все, что вам нужно, это указать на правильный массив, и все будет работать так, как вы хотели:

var url = "https://nominatim.openstreetmap.org/reverse.php?zoom=15&format=json&lat=45.9660047&lon=13.6408311";
var url2 = "https://nominatim.openstreetmap.org/reverse.php?zoom=18&format=json&lat=45.9660047&lon=13.6408311";

$.when($.getJSON(url), $.getJSON(url2)).done(function (data1, data2) {

    alert(data1[0].address.village);
    alert(data2[0].address.city);

    //do stuff with 'data' and 'data2'
});
0 голосов
/ 15 февраля 2020
var url = "https://nominatim.openstreetmap.org/reverse.php?zoom=15&format=json&lat=45.9660047&lon=13.6408311";
var url2 = "https://nominatim.openstreetmap.org/reverse.php?zoom=18&format=json&lat=45.9660047&lon=13.6408311";


var data = {};

$.getJSON(url, function(result){
  data.data1 = result;
});

$.getJSON(url2, function(result){
  data.data2 = result;
});


console.log(data); // will return the two urls json code

Вы можете попробовать код на jsfiddle (https://jsfiddle.net/qtcvux31/)

...