JSON 新手询问:给定以下 json 数据:
{
"Users": [
{
"userName": "Herbie",
"dates & times": [
{ "2014.08.01": "120.0" },
{ "2014.08.02": "123.0" },
{ "2014.08.03": "126.0" }
]
},
{
"userName": "Wayne",
"dates & times": [
{ "2014.08.01": "120.0" },
{ "2014.08.02": "123.0" },
{ "2014.08.03": "126.0" }
]
},
{
"userName": "Freddie",
"dates & times": [
{ "2014.08.01": "120.0" },
{ "2014.08.02": "123.0" },
{ "2014.08.03": "126.0" }
]
},
{
"userName": "Ron",
"dates & times": [
{ "2014.08.01": "120.0" },
{ "2014.08.02": "123.0" },
{ "2014.08.03": "126.0" }
]
},
{
"userName": "Tony",
"dates & times": [
{ "2014.08.01": "120.0" },
{ "2014.08.02": "123.0" },
{ "2014.08.03": "126.0" }
]
}
]
}
...并且想要检索指定用户的日期和时间数据以便可以呈现它,例如:
Date 01: Time 01
Date 02: Time 02
Date 03: Time 03
我已经阅读了很多有关循环数组和对象的内容,但我仍然对如何获取日期和时间(或任何键/值)(如果键是唯一的)感到困惑。到目前为止我有这个:
var usersArray = myObj["Users"];
for (var user in usersArray){
if (!usersArray[user].userName == selUser) {
alert("user not found");
}
else if (usersArray[user].userName == selUser) {
var datesAndTimesArray = usersArray[user]["dates & times"];
console.log(selUser +"'s dates & times: " + datesAndTimesArray); // returns array of objects
}
}
for (var someKey in datesAndTimesArray){
// here's where I'm struggling, trying to get all the dates & times for the selected user, such that I can render it as described above
// pseudo-code
}
顺便说一句:学习 javascript,而不是使用 jquery 等
提前非常感谢,
svs
最佳答案
由于datesAndTimesArray
是一个对象数组,因此您需要一个嵌套循环来处理它。
for (var i in datesAndTimesArray) {
var obj = datesAndTimesArray[i];
for (var date in obj) {
console.log('Date ' + date + ': Time' + obj[date]);
}
}
日期和时间最好是单个对象而不是数组,例如
"dates & times": {
"2014.08.01": "120.0",
"2014.08.02": "123.0",
"2014.08.03": "126.0"
}
那么你只需要做for (datesAndTimesArray)
关于javascript - 从 JSON 数组中的嵌套对象获取所有键及其值(不包含 jQuery),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25514359/