Как напечатать название языка ipdata с помощью javascript?

Привет, ребята, мне нужно знать, как напечатать название языка в 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; и это не работает

ты пробовал response.languages[0].name;

Krishna Prashatt 30.05.2019 14:54

спасибо бро, все работает

Nobel 30.05.2019 14:55
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
2
56
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

это массив

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; работает, спасибо бро.
Nobel 30.05.2019 14:58

Языки - это массив, поэтому вам нужно будет сопоставить его элементы и получить из него имя.

"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);

Другие вопросы по теме