从ajax调用中获取JSON后,数据“response”存储在“theObj”变量中;但是,当我尝试将“theObj”记录到控制台时,它会产生多个“[Object object]”,即使使用JSON.stringify()也是如此。
如果我执行“theObj [0]”(response.results [0]工作正常),对于“[Object object]”中的第一个字符,我得到“[”。
问:如何将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))
}
}
}
答案 0 :(得分:2)
我认为错误在行
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
请告诉我您正在使用上述哪一项
答案 1 :(得分:0)
试试这个
$.ajax(settings).done(function(response) {
$.each( response, function( key, val ) {
console.log(val.id)
});
}
答案 2 :(得分:0)
我假设您想要将数据作为对象而不是字符串。
为此,您必须使用var object = JSON.parse(yourJSONString)
。此方法根据您的JSON字符串返回一个对象。
示例:
JSON结果:
{
"name":"John Doe"
}
Javascript代码:
var john = JSON.parse(result);
console.log(john.name); //prints John Doe