Javascript 使用Fetch API时,数据流是如何工作的?

Javascript 使用Fetch API时,数据流是如何工作的?,javascript,fetch,Javascript,Fetch,以一个简单的API获取调用为例,如下所示: fetch('https://api.nasa.gov/planetary/apod?api_key=xxxxxxxxx') .then(res => res.json()) .then(data =>setPic(data.hdurl)) 我还是有点不明白这是怎么回事。我的理解是——信息以JSON的形式从web服务器发送,但要在网页上显示,它必须转换为普通的JS对象。这是正确的吗 如果是这样,上面的方法如何将JSON转换为JS对象?因

以一个简单的API获取调用为例,如下所示:

fetch('https://api.nasa.gov/planetary/apod?api_key=xxxxxxxxx')
.then(res => res.json())
.then(data =>setPic(data.hdurl))

我还是有点不明白这是怎么回事。我的理解是——信息以JSON的形式从web服务器发送,但要在网页上显示,它必须转换为普通的JS对象。这是正确的吗

如果是这样,上面的方法如何将JSON转换为JS对象?因为据我所知,
res.json
只是提取json,而不是转换它

[…]上述方法如何将JSON转换为JS对象?因为 据我所知,
res.json()
只是提取了json,而不是 转换它

这就是
.json()
所做的-它解析json字符串,并将其解析为JS对象

//从URL检索数据
fetch('data:text/plain;charset=utf-8,%7B%22myJSON%22%3A%20%22myJSON%22%7D')
//将从URL检索的数据解析为JSON并解析为JS对象
.then(res=>res.json())
//处理已解析的数据
。然后(数据=>{
console.log('数据已解析为:'+数据类型);
控制台日志(数据);
});:“Body mixin的json()方法获取一个响应流并将其读取到完成。它返回一个承诺,该承诺通过将Body文本解析为json的结果进行解析。”“但要在网页上显示,它必须转换”它不必转换为要显示的对象。如果您想向用户显示JSON字符串,您可以这样做。只有当您真正想要操作它的单个属性时,例如
hdurl