无法循环访问JSON对象Javascript

时间:2016-06-22 11:08:22

标签: javascript jquery json loops object

我尝试使用javascript循环访问JSON对象。它是一个对象而不是一个数组的原因是因为使用XAMARIN和C#访问相同的数据,NewtonJSON可以更好地与只是 JSON对象一起使用,而不是混合使用对象和数组。

下面是我正在尝试使用的JSON对象,我已经删除了比特,因此您可以看到我遇到问题的对象的主要部分。

CODE: NULL
VALUE:{
  USER24:{id: "24", business: "25", username: "test1", firstName: "test1", lastName: "test1", level: "0",…}
  USER25:{id: "25", business: "25", username: "test2", firstName: "test2", lastName: "test2", level: "0",…}
  USER26:{id: "26", business: "25", username: "test3", firstName: "test3", lastName: "test3", level: "0",…}
  USER27:{id: "27", business: "25", username: "test4", firstName: "test4", lastName: "test4",…}
  USER28:{id: "28", business: "25", username: "test5", firstName: "test5", lastName: "test5",…}
  USER29:{id: "29", business: "25", username: "test6", firstName: "test6", lastName: "test6", level: "0",…}
  USER30:{id: "30", business: "25", username: "test7", firstName: "test7", lastName: "test7", level: "0",…}
}
EXTRA: NULL

我遇到的问题是当我循环浏览 data.VALUE 时,我获得了 USER24 的键和值,而不是的键和值> data.VALUE 即可。当我尝试遍历数据时,我会像我期望的那样获得 CODE,VALUE,EXTRA 键。

无论我在循环中放置什么,我都不会获得密钥和值 USER24,USER25,USER26,... 这就是我想要的。下面是我使用的Javascript循环片段:

  for(var key in data.VALUE){
    if(data.VALUE.hasOwnProperty(key)){
      console.log('key:'+key+', val:'+data.VALUE[key]);
    }
  }

我从这里得到的是:

key:id, val:24
key:business, val:25
key:username, val:test1
key:firstName, val:test1
key:lastName, val:test1
key:level, val:0
key:email, val:test1@test.co.uk
key:phone, val:null
key:isAdmin, val:true

哪个是完全错误的!

我不确定我还要为此做些什么,我尝试过使用JQuery的 $。每个,我还没有使用新的< strong>让[关键,价值] ,因为它现在太依旧了。

如果您需要更多信息或代码片段,请随时提出!感谢先进的任何帮助!

以下是chrome中预览标签中的JSON图片(减去一些敏感数据):

enter image description here

1 个答案:

答案 0 :(得分:0)

你可以通过JQuery中的$ .each来完成这个

role      name     no.
--------  -------  ----
MANAGER   Alice     1
WORKER    Bob       1        // second row, but the first worker
WORKER    Evan      2
WORKER    John      3
MANAGER   Max       2        // fifth row, but only the second manager
WORKER    Steve     4

如果你想从javascript访问它你将获得data.VALUE.USER24对象中的每个键。

$.each(data.VALUE, function (i, key) {
         $.each(key, function (j,k) {
              console.log('key:'+j+', val:'+k);
         });
     });