[英]How to access array within associative array in jquery
我正在以关联数组格式从远程服务器检索 JSON 数据。 关联数组的结构为:
data=
{
"1":[{"project_id":1,"project":"IET1"},{"project_id":2,"project":"IET2"}],
"2":[{"project_id":3,"project":"IET3"}],
"3":[{"project_id":4,"project":"IET4"},{"project_id":5,"project":"IET5"}]
}
这是我从 ajax 响应中得到的确切格式。 现在,当我尝试使用以下方式遍历它时:
var obj = JSON.parse(data, function (key, value) {
alert(key + " " + value) // will alert => "project_id 1"
}
我正在尝试使用主索引(“1”、“2”等)进行迭代。 我怎样才能做到这一点? 我搜索了很多,但没有找到任何解决方案。
使用 Object.keys 可能会对您有所帮助。 这是一个嵌套循环..但有效
let data = `{
"1":[{"project_id":1,"project":"IET1"},{"project_id":2,"project":"IET2"}],
"2":[{"project_id":3,"project":"IET3"}],
"3":[{"project_id":4,"project":"IET4"},{"project_id":5,"project":"IET5"}]
}`;
data = JSON.parse(data)
const keys = Object.keys(data);
keys.forEach(key => data[key].forEach(project => console.log(project.project_id + " - " + project.project)));
不要在JSON.parse()
使用“reviver”回调函数 - 它用于在解析数据时转换数据。
解析一下就行了然后您可以根据需要检索密钥或使用for in
循环迭代它们。
let data = `{ "1":[{"project_id":1,"project":"IET1"},{"project_id":2,"project":"IET2"}], "2":[{"project_id":3,"project":"IET3"}], "3":[{"project_id":4,"project":"IET4"},{"project_id":5,"project":"IET5"}] }`; const out = JSON.parse(data); const keys = Object.keys(out); for (key in out) { alert(out[key][0].project); console.log(key, out[key]); }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.