我尝试使用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图片(减去一些敏感数据):
答案 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);
});
});