繁体   English   中英

如何在jquery中访问关联数组中的数组

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM