将JSON数据存储在变量中后获取

时间:2017-06-09 08:53:08

标签: javascript json

从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))
                     }
                 }
       }

3 个答案:

答案 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];) + ", ";,然后确保在结尾添加}]它分别是objectarray(并且在开头也有{[),然后使用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