javascript - 使用 Fetch API 访问 JSON

标签 javascript json

我正在尝试使用 fetch api 取回一些数据,但是一旦我检索到它就无法将其映射到控制台。

fetch('http://jsonplaceholder.typicode.com/users', { 
  method: 'GET'
}).then(function(response) {
  console.log(response)
  response.forEach(i => console.log(i.name));
}).catch(function(err) {
  console.log(`Error: ${err}` )
});

我得到的错误是

response.map is not a function

所以我尝试解析响应(即 var data=JSON.parse),但没有成功,出现错误

SyntaxError: Unexpected token o in JSON at position 1"

有趣的是,当对 XMLHttp 请求做同样的事情时,我需要对其进行解析,所以我也很想知道为什么这两种检索数据的方法之间存在差异。

如果有人能指出正确的方向,我将不胜感激。

最佳答案

Fetch API 返回 response stream在 promise 中。响应流不是 JSON,因此尝试对其调用 JSON.parse 将失败。要正确解析 JSON 响应,您需要使用 response.json功能。这会返回一个 promise ,因此您可以继续链。

fetch('http://jsonplaceholder.typicode.com/users', { 
  method: 'GET'
})
.then(function(response) { return response.json(); })
.then(function(json) {
  // use the json
});

关于javascript - 使用 Fetch API 访问 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37663674/

相关文章:

php - 如何将 Doctrine 对象转换为 json

java - 如何在 android java 中解析 android studio 中巨大的 JSON 文件

javascript - jqGrid - 如何删除寻呼机上的页面选择但保留按钮?

javascript - 即使返回 false 页面也会刷新

javascript - 从 objective-c 到Javascript WKWebkit AVPlayer通知游戏结束

javascript - 如何根据 typescript 中的键对对象数组进行排序

javascript - 如何使用其他 javascript 文件中的新类访问我的 createjs 导出的 js 文件?

json - 如何使用管道工 R 发送 json 响应

javascript - 如何使用 axios 将图像作为 application/json 数据发布到 REST 端点?

javascript - 请求 JQuery 时出现错误 401