首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >问题解析JSON

问题解析JSON
EN

Stack Overflow用户
提问于 2015-08-13 20:16:11
回答 5查看 41关注 0票数 0

我从我的AJAX调用中得到了一个JSON对象(我认为),如下所示:

代码语言:javascript
复制
$.ajax({
   url: 'testing.php',
            type: 'POST',
            data: {
                code: code_got,
            },
            success: function(data) {
              var list_data = data;
              console.log(list_data);//this is the object shown below
        var list_name = list_data['data']['name'];
        console.log(list_name);//this throws an error that `name` is undefined
            }
          });
});

答复如下:

代码语言:javascript
复制
 {
  "total" : 5,
  "data" : [
    {
      "id" : "312464ee1e",
      "stats" : {
        "members" : 58,
      },
      "web_id" : 11966492,
      "name" : "List 1"
    },
    {
      "id" : "312464ee1e",
      "stats" : {
        "members" : 123,
      },
      "web_id" : 1196649,
      "name" : "List 2"
    },

  ]
}

我正试着(首先)得到第一个名单的名字。我试过了,但没用:

代码语言:javascript
复制
var list_data = data;
console.log(list_data);//this is the object shown above
var list_name = list_data['data']['name']; //this throw an error "Uncaught TypeError: Cannot read property 'name' of undefined"

第二,我想做一个each来从数据中获取所有的name项,但是在我找出JSON结构之前,我无法做到这一点。

我在这里做错什么了?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2015-08-13 20:30:47

首先,您必须将其解析为json,然后循环遍历它。

代码语言:javascript
复制
success: function(data) {
    var lists = JSON.parse(data);
    var dataset = list['data'];
    for(var i=0; i< dataset.length; i++)
        console.log(dataset[i]['name']);
}

或者您可以使用$.each循环它:

代码语言:javascript
复制
$.each(dataset, function(index, d){
    console.log(d.name);
});

另外,如果您知道返回的数据是json,则可以不使用JSON.parse(),而是将ajaxdataType参数设置为'json'

代码语言:javascript
复制
$.ajax({
    ....
    dataType: 'json',
    ....
});
票数 1
EN

Stack Overflow用户

发布于 2015-08-13 20:20:30

您正在寻找数组list_data['data']上的对象属性。

您希望在该数组中具有对象的属性。

试一试

代码语言:javascript
复制
var list_name = list_data['data'][0]['name'];
票数 1
EN

Stack Overflow用户

发布于 2015-08-13 20:21:09

我认为您需要将JSON中的职位添加到末尾。

代码语言:javascript
复制
var list_name = list_data['data'][0]['name']

这里是来自W3Schools的JSON上的一个W3Schools

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31997629

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档