我有一个对象,该对象是通过我的REST API返回的,我需要遍历它以同步数据库。因此,该对象包含另一个称为表的对象。表对象具有带有表名及其键值对的不同数组。 我所做的两天都无法遍历表格对象,这真令人讨厌,将null或未定义的值取回来。
例如,我尝试使用JavaScript函数object.forEach((article)=> console.log(article.id,article.name));遍历表数组。
const obj = response.content.tables.article;
function findArticles(obj) {
obj.forEach((article)=>console.log(article.id,article.name));
}
我无法收回任何价值。当我尝试console.log(response.content);它向我展示了一切。当我尝试输出response.content.tables时,它说未定义。
这是对象 response.content:
的结构{
"status": "1",
"message": "sync out request successfull",
"tables": {
"article": [
{
"id": 1,
"name": "baseball"
},
{
"id": 2,
"name": "truck"
},
],
"food": [],
"animals: []
}
}
答案 0 :(得分:1)
在尝试获取属性之前,请尝试使用JSON.parse(xyz)将响应转换为对象。
var xyz = '{ "status": "1", "message": "sync out request successfull", "tables": { "article": [{"id": 1,"name": "baseball"},{"id": 2,"name": "truck"}],"food": [],"animals": []}}'
var obj = JSON.parse(xyz);
$(obj.tables).each(function (ix, el) {
console.log(el)
});
答案 1 :(得分:0)
我这样解决了:
var obj = response.content;
var JSON = JSON.parse(obj);
var articleTable = JSON.tables.article;
articleTable.forEach((article)=>console.log(article.id,article.name));
在将response.content对象解析为JSON之后,可以访问作为“表”和“文章”的嵌套对象。将带有articleTable变量的article对象传递给forEach之后,便可以访问每个元素。现在我得到结果了。
非常感谢您的帮助 T3.0没有您就无法解决问题。