我无法从JSON响应访问密钥,但可以看到其所有密钥
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我无法从JSON响应访问密钥,但可以看到其所有密钥相关的知识,希望对你有一定的参考价值。
故事的寓意:始终仔细检查您的钥匙。我的密钥是states
,正在尝试访问state
服务器正在使用Flask并响应嵌套的JSON。在前端,我可以看到请求已通过,并且可以console.log JSON正常。
如果我跑步:Object.keys(JSON)
它会打印所有的第一个键。
类似地,如果我打印出JSON,它将把它打印为JSON。
我已经使用typeof()进行检查以确保响应已接收到JSON。
[每当我尝试使用现有键(例如,县)访问JSON中的值时,它都将不起作用。
[如果您在下面注意到,counties.cases
存在,但是当我尝试访问JSON.counties.cases时,它抱怨县不存在。我已经尝试过每一个键。
并且已经尝试遍历JSON,并且每次迭代都返回undefined
。
我也尝试过JSON.parse()
,但由于它已经是JSON对象,所以无法解析。
send_request = async () => {
const host = window.location.protocol + '//' + window.location.hostname + ":8080"
const url: string = `${host}/get-all-data`
let response = await fetch(
url, {mode: 'cors'}
).then(response => response.json().then(res => {
console.log(res) // Works
console.log(res.state) // Doesn't work
console.log(res.state.cases) // Doesn't work
}
听起来您正在尝试访问一个尚不存在的对象。我的意思是,我认为您正在访问字段时,Promise
尚未解决。
并且当您在检查器中打开对象时,诺言得到解决,结果就在那里。
无论您使用什么来在浏览器中执行请求,我都假定它正在返回Promise
,并且您需要等待它解析后才能访问结果。
假设您在变量p
中有响应承诺,那么您可以等待它执行类似的操作:
p.then(function (response) {
console.log(response.countries);
});
如果您需要更多详细信息,请告诉我,或添加有关您的具体情况的其他信息。
我用来访问JSON的密钥上有错字。因此,当我打印JSON时,它可以正常打印,但是当我访问state
时它不起作用,因为真正的密钥是states
以上是关于我无法从JSON响应访问密钥,但可以看到其所有密钥的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 boto 从 S3 读取密钥,但可以使用 aws cli
Ameritrade API POST 请求 JSON 响应