#javascript #ajax #api
#javascript #ajax #API
Вопрос:
Я пытаюсь создать веб-сайт, который собирает информацию из API. Следующий код всегда оценивается как «Звуковой сигнал, звуковой сигнал! Я не могу найти страницу Википедии с API ! 🙁 В любом случае, здесь больше информации о … ‘! У кого-нибудь есть идеи, почему?
var geoNamesWiki = result.geoNamesWiki;
for (let j = 0; j < 30; j ) {
if (geoNamesWiki.geonames[j].feature == 'country' amp;amp;
(geoNamesWiki.geonames[j].countryCode == openCage.results[0].components["ISO_3166-1_alpha-2"] ||
geoNamesWiki.geonames[j].title.includes(openCage.results[0].components.country))) {
$('#summary').html(geoNamesWiki.geonames[j].summary);
$('#wikiLink').html(geoNamesWiki.geonames[j].wikipediaUrl).attr("href", "https://" geoNamesWiki.geonames[j].wikipediaUrl);
} else {
$('#summary').html('Beep Boop Beep! I cant find the wikipedia page with the API! :-( n Anyways here is more info on' openCage.results[0].components.country ':');
$('#wikiLink').html('https://en.wikipedia.org/wiki/' encodeURI(openCage.results[0].components.country)).attr("href", 'https://en.wikipedia.org/wiki/' encodeURI(openCage.results[0].components.country));
}
}
Комментарии:
1. Какова ценность
geoNamesWiki
?2. geoNamesWiki — это массив json из 30 записей с информацией для каждой страны, возвращаемой GeoNames, который можно найти здесь: api.geonames.org /…
3. Также, когда я удаляю часть ‘else’ этого оператора, он работает нормально. Это должно помочь, когда GeoNames не может найти запись в Википедии (по какой-то причине он не может найти запись в вики для Испании ?! Но в большинстве других стран все в порядке)
Ответ №1:
Есть подозрение, что у вас есть строка var geoNamesWiki = result.geoNamesWiki;
, попробуйте сначала проанализировать ее в объект JSON var geoNamesWiki = JSON.parse( result.geoNamesWiki );
Комментарии:
1. Это уже объект JSON, как только он доходит до этой стадии
2. Тогда есть вероятность, что вы перезаписываете все, что было оценено до сих пор, с помощью финала условия else.
3. @LauraElizabeth так это было
else
условие, перезаписывающее все ранее найденное, не так ли? : D
Ответ №2:
Я нашел ответ благодаря @Bekim Bacaj! Я перезаписывал то, что уже сделал, поэтому просто нужно было добавить разрыв в последней строке части IF.