У меня есть один объект в массиве, как это:

Я получаю некоторые данные, как это:

 $.ajax({
        url: 'myphp.php'
        type: 'GET',
        dataType: 'JSON',
        data: {},
        success: function(data) {
           console.log(data) //gives [{"userId":"xyz1234"}]
           console.log(data.userId) // undefined
        }
    });

Что мне здесь не хватает? Почему я не могу получить userId отсюда?

-1
jonmrich 30 Авг 2017 в 21:23

3 ответа

Лучший ответ

Как вы сказали, у вас есть массив с одним объектом, вам нужно использовать индекс:

 console.log(data[0].userId);
3
tymeJV 30 Авг 2017 в 18:24

Поскольку вы data массив объектов , вам необходимо сделать следующее: -

console.log(data[0].userId);

Примечание: - если массив data содержит больше объектов (т. Е. массив объектов ), необходимо выполнить цикл each(), как показано ниже : -

$.each(data,function(index,value){
  console.log(value.userId);
});

Пример:-

var data = [{userId: 1},{userId: 2},{userId: 3},{userId: 4}];

$.each(data,function(index,value){
  console.log(value.userId);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
5
Anant Singh---Alive to Die 30 Авг 2017 в 18:33

Вам нужно получить первый элемент массива следующим образом:

console.log(data[0].userId)

В конце концов вы можете сделать что-то вроде этого:

let data = [{userId: 1},{userId: 112},{userId: 133},{userId: 341}]

for(let item of data) {
    console.log(item.userId)
}
2
Get Off My Lawn 30 Авг 2017 в 18:24