После возвращения JSON из вызова ajax данные "ответ" сохраняются в переменной "theObj"; однако, когда я пытаюсь записать "theObj" на консоль, это приводит к нескольким "[Object object]", даже с JSON.stringify().
Если я делаю "theObj [0]" (response.results [0] отлично работает), я получаю "[", для первого символа в "[Объект объекта]".
В: Как я могу сохранить JSON в переменной и получить данные обратно после?
$.ajax(settings).done(function(response) {
for (var i = 0; i < 19; i++) {
//creating JSONenter[enter image description here][1]
theObj += response.results[i];
if (i == 18) {
//console.log(theObj.id)
console.log(JSON.stringify(theObj[0].id))
}
}
}
Я думаю, что ошибка в строке
theObj += response.results[i];
Поэтому попробуйте это вместо этого
function (response) {
var list = response.results;
// if there is no reason for having 19, replace this with var end = list.length
var end = Math.min(list.length, 19);
for(var index = 0; index < end; index++) {
theObj.push(list[index]);
}
console.log(theObj);
}
Мы не видим инициализацию переменной theObj
Если это массив, вы должны использовать функцию push
для добавления в нее элементов
Если это общий объект, используйте theObj[id] = list[index];
DISCOURAGED Если это строка, вы должны использовать параметр theObj += JSON.stringify(response.results[i];) + ", ";
, затем убедитесь, что вы добавили }
или ]
в конец, если это object
или array
соответственно (и что он также имеет {
или [
в начале], а затем использует JSON.parse(theObj)
чтобы преобразовать его обратно в object
Пожалуйста, дайте мне знать, что из
попробуй это
$.ajax(settings).done(function(response) {
$.each( response, function( key, val ) {
console.log(val.id)
});
}
Я предположил, что вы хотите получить данные как объект, а не строку. Для этого вам нужно использовать var object = JSON.parse(yourJSONString)
. Этот метод возвращает объект, основанный на вашей строке JSON.
Пример:
Результат JSON:
{
"name":"John Doe"
}
Код Javascript:
var john = JSON.parse(result);
console.log(john.name); //prints John Doe
Math.min(list.length, 19)
если в списке меньше элементов