这几乎与这个问题json get key names as text?完全相同,但是该响应对我不起作用。

我有一个json对象

{“userList”:[
{“user1”:[{“username”:“mike”,“memberSince”:“01/03/2011”}]},
{“user2”:[{“username”:“john”,“memberSince”:“01/05/2011”}]},
]}

我拥有“user1”和“user2”标签的唯一原因是因为我将用户ID的用户列表存储在jQuery数据中,然后将其字符串化以将其放入cookie并发送到另一个页面中。我知道,听起来很愚蠢,但是在使用db正确执行此操作之前,我只是构建一些前端东西来证明一点。

所以

jQuery('div#userList')。data('user1',user1JSON);

变成

{“user1”:[{“username”:“mike”,“memberSince”:“01/03/2011”}]}

使用时

var userlist = JSON.stringify(jQuery('div#userList')。data());

因此,用户信息现在是userId的子代,而不仅仅是userlist的子代。

为了获得用户信息,我应该能够说

for(u = 0; u var userInfo = userList [u] [0];
}

不幸的是,这只是给我一个未定义的错误。如果我用

var userInfo = userList [u] ['user1'];

我正确地获得了用户信息。

因此,有人可以纠正我关于userList [u] [0]不起作用的原因,或者

向我解释如何在不将userid添加到字符串开头的情况下使用JSON.stringify?

最佳答案

那是因为userList[u]返回一个对象,而不是一个数组。

并且您无法使用索引访问对象属性。

你可以尝试

for(u=0;u<userList.length;u++){
   for (var user in userList[u])
        {
          // user is the key
          // userList[u][user] is the value
          var userInfo=userList[u][user];
        }
}

关于jquery - 从json对象获取键名,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4652663/

10-13 00:28