我在javascript中使用提取API。但是,我在通过不同的JSON对象格式进行映射时遇到了麻烦。这是我的代码的两个摘要,第一个起作用,第二个由于JSON格式而不起作用。
这很好用-
fetch('https://randomuser.me/api/?results=3')
.then(results => { return results.json(); })
.then(function(data) {
{data.results.map((key) => console.log(key.gender))}
});
这不起作用-因为JSON格式ID不同
fetch('https://jsonplaceholder.typicode.com/users/1')
.then(results => { return results.json(); })
.then(function(data) {
{data.results.map((key) => console.log(key.gender))}
});
这是我得到的错误
未捕获(承诺)TypeError:无法读取未定义的属性“ map”
有人可以解释我如何映射不同的json格式类型 提前感谢
答案 0 :(得分:1)
此数据集中没有results
属性,它只是一个“结果”:
https://jsonplaceholder.typicode.com/users/1
但是,如果使用此数据集,则没有理由映射单个项目:
https://jsonplaceholder.typicode.com/users/
您可以映射它,但是数据集中仍然没有result
属性,而项目上也没有gender
属性...因此您需要映射data
对象以及一个现有的属性...即website
:
fetch('https://jsonplaceholder.typicode.com/users/')
.then(results => { return results.json(); })
.then(function(data) {
{data.map((key) => console.log(key.website))}
});