jquery - 从 json 对象获取键名

标签 jquery json key

这和这个问题几乎一模一样json get key names as text? ,但这个回应对我不起作用。

我有一个 json 对象

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

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

所以

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<userList.length;u++){
   var userInfo=userList[u][0];
}

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

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

我正确获取了用户信息。

那么,有人可以纠正我为什么 userList[u][0] 不起作用,或者

向我解释一下如何使用 JSON.stringify 而不将用户 ID 添加到字符串的开头?

最佳答案

这是因为 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/

相关文章:

c# - JObject 包含一个 C# 关键字 - 如何访问它?

php - Postgresql查询结果PHP编码转换数组为字符串

javascript - 为什么 console.log 在这种情况下不起作用?开放天气 map API

ruby-on-rails - 如何从 Rails 中的哈希列表中删除嵌套键

javascript - 实现 jQuery 下拉效果

javascript - 如何在 Jquery 中创建方法/函数

javascript - 如何通过单击链接更新 MySQL 数据库行?

javascript - Bootstrap : Change text of small

Java 多次按键

python - 通过SOCKS5代理连接SSH服务器