Js如何通过不同的Json数据类型进行映射

时间:2019-03-27 05:27:05

标签: javascript json mapping fetch-api

我在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格式类型 提前感谢

1 个答案:

答案 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))}

    });