我收到一个对象作为响应,我使用 response.json() 将其转换为 JSON,但随后无法从 json 中获取值? [复制]

Posted

技术标签:

【中文标题】我收到一个对象作为响应,我使用 response.json() 将其转换为 JSON,但随后无法从 json 中获取值? [复制]【英文标题】:I am receiving an object as a response that I convert to JSON by using response.json() but then cant get the values out of the json? [duplicate] 【发布时间】:2019-02-26 11:38:13 【问题描述】:

我正在向 spotify 发送一个请求,以从他们那里获取一个 id 值,以便稍后在发布请求中使用。

fetch('https://api.spotify.com/v1/me', 
    headers: 
        'Authorization': `Bearer $token`
    
).then(response => 
    let jsonResponse = response.json();
);

当使用 response.json() 转换为 jason 时,此代码返回一个如下所示的对象

Promise <pending>__proto__: Promise[[PromiseStatus]]: "resolved"[[PromiseValue]]: Objectdisplay_name: "Jesse James"external_urls: spotify: "https://open.spotify.com/user/1257754444"followers: href: null, total: 3href: "https://api.spotify.com/v1/users/1257754444"id: "1257754444"images: […]type: "user"uri: "spotify:user:1257754444"__proto__: Object

现在我想提取 id 值。但是当我使用 console.log( jsonResonse.id ) 我得到一个未定义的。如何获得该值?

【问题讨论】:

你能给我看看原始回复吗? jsonResponse 是 json 响应的 promise 【参考方案1】:

response.json() 返回一个承诺

所以,简单地继续承诺链如下

fetch('https://api.spotify.com/v1/me', 
    headers: 
        'Authorization': `Bearer $token`
    
)
.then(response => response.json()) // response.json() returns a Promise
.then(jsonResponse => 
    // here jsonResponse is the json you were looking for
);

【讨论】:

以上是关于我收到一个对象作为响应,我使用 response.json() 将其转换为 JSON,但随后无法从 json 中获取值? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

request对象和response对象

request和response简介

Servlet之request和response

Request和Response

14_Response对象

day09 request 和response