Привет, ребята, мне нужно знать, как напечатать название языка в ipdata. У меня этот код внизу работает хорошо, и результаты кажутся правильными, но когда я получаю название языка, результаты показывают имя языка = undefined;
Результаты
184.23.215.250
United States
<img src = "https://ipdata.co/flags/us.png">
US
North America
Sonic Telecom LLC
undefined
мои js вары
var country_name = response.country_name;
var flag = response.flag;
var country_code = response.country_code;
var continent_name = response.continent_name;
var organisation = response.organisation;
var lang = response.languages.name;
вы можете попробовать это от http://tiger222.atwebpages.com/set.php
Вы обнаружите, что данные правильные, но как мне правильно получить название языка?
var lang = response.languages->name;
это не работает
var lang = response.languages.name;
и это не работает
спасибо бро, все работает
это массив
var lang = response.languages[0].name;
В исходных данных languages
является множество, например.
"languages": [
{
"name": "English",
"native": "English"
}
],
Поэтому потенциально он может содержать несколько записей.
Предполагая, что вам просто нужен первый язык в списке, вы можете напрямую обратиться к первому индексу массива, например так:
var lang = response.languages[0].name;
P.S. ->
недопустимый синтаксис в JavaScript. Возможно, вы имели в виду синтаксис PHP.
var lang = response.languages[0].name;
работает, спасибо бро.
Языки - это массив, поэтому вам нужно будет сопоставить его элементы и получить из него имя.
"languages": [
{
"name": "English",
"native": "English"
}
],
Это может сломаться, если в массиве нет языков, поэтому вы можете сделать защитный код, как показано ниже:
var lang = (response.languages && response.languages.length && response.languages[0].name) || '';
const response = {
"ip": "12.00.00.01",
"is_eu": false,
"city": "Any City",
"region": "Pennsylvania",
"region_code": "PA",
"country_name": "United States",
"country_code": "US",
"continent_name": "North America",
"continent_code": "NA",
"latitude": 49.9776,
"longitude": -95.3099,
"asn": "AS7018",
"organisation": "AT&T Services, Inc.",
"postal": "18083",
"calling_code": "1",
"flag": "https://ipdata.co/flags/us.png",
"emoji_flag": "\ud83c\uddfa\ud83c\uddf8",
"emoji_unicode": "U+1F1FA U+1F1F8",
"carrier": {
"name": "AT&T",
"mcc": "310",
"mnc": "016"
},
"languages": [
{
"name": "English",
"native": "English"
}
],
"currency": {
"name": "US Dollar",
"code": "USD",
"symbol": "$",
"native": "$",
"plural": "US dollars"
},
"time_zone": {
"name": "America/New_York",
"abbr": "EDT",
"offset": "-0400",
"is_dst": true,
"current_time": "2019-05-30T08:52:43.569643-04:00"
},
"threat": {
"is_tor": false,
"is_proxy": false,
"is_anonymous": false,
"is_known_attacker": false,
"is_known_abuser": false,
"is_threat": false,
"is_bogon": false
},
"count": "1501"
};
var country_name = response.country_name;
var flag = response.flag;
var country_code = response.country_code;
var continent_name = response.continent_name;
var organisation = response.organisation;
var lang = response.languages[0].name;
console.info(lang);
ты пробовал
response.languages[0].name;