jquery Can't loop through JSON Object Javascript

92vpleto  于 2023-05-28  发布在  jQuery
关注(0)|答案(1)|浏览(221)

我正在尝试使用javascript遍历JSON对象。它是一个对象而不是一个数组的原因是因为使用XAMARIN访问相同的数据,并且C#的NewtonJSON更好地使用 just 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的键和值。当我尝试循环遍历data时,我得到了CODEVALUEEXTRA,就像我期望的那样。
无论我在循环中放置什么,我都不会得到键和值USER24USER25USER26,...这是我想要的下面是我正在使用的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的$.each,我没有使用新的let[key, value],因为它太新了。
以下是chrome预览选项卡中的JSON图片(减去一些敏感数据):

z9zf31ra

z9zf31ra1#

您可以通过jQuery中的$.each来实现,如下所示

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

如果你想从javascript访问它,你可以在data.VALUE.USER24对象中获取每个键。

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

相关问题