Javascript 使用json解析后返回未定义的Fetch
我正在编写一个JavaScipt应用程序,试图从某个URL获取数据,但得到一个未定义的值。获取并将其转换为json后的预期值应生成一个数组。我不知道为什么会这样。我把我的代码放在下面:Javascript 使用json解析后返回未定义的Fetch,javascript,json,fetch,Javascript,Json,Fetch,我正在编写一个JavaScipt应用程序,试图从某个URL获取数据,但得到一个未定义的值。获取并将其转换为json后的预期值应生成一个数组。我不知道为什么会这样。我把我的代码放在下面: let promiseResponse = fetch("some-url"); let response = await promiseResponse; // check if there was an error in fetching the data (no error detected)
let promiseResponse = fetch("some-url");
let response = await promiseResponse;
// check if there was an error in fetching the data (no error detected)
if(!response.ok) {
alert("An error occured when attempting to fetch data.")
}
// a console.log statement here for the var 'response' results in "[object Promise]"
let parsedPromiseResonse = response.json();
let parsedResponse = await parsedPromiseResonse;
// printing out the 'parsedResponse' var gives me [object Object]
// printing out the 'parsedResponse[0]' var gives me undefined
编辑:
对于更多上下文,URL中要检索的数据的格式如下:
{"variants":["some-string","some-string"]}
任何帮助都将不胜感激 要访问json,必须调用实体变体,然后访问项目,类似
alert(parsedResponse.variants[0])
结果应该是
some-string
如果您引用的是varients数组,那么这就是获取数组值的方式
parsedResponse[“变量”]
对于第一个索引
parsedResponse[“varients”][0]
听起来好像API返回的对象没有0
属性parsedResponse
是一个对象,如何“打印”这个变量。。。我还感到惊讶的是,响应
是一种承诺,尽管你的代码非常笨拙<代码>让响应=等待获取(“某个url”)和让parsedResponse=wait response.json()
是大多数人编写上述代码的方式-不需要那么多中间变量,这些变量包含的承诺只会在下一行中等待!它应该有一个0属性,因为它是一个数组(或者至少在解析后它应该是一个数组)。我通过“console.log”语句打印出该对象,因此解析后的响应不是数组,而是一个带有数组作为variants
属性值的对象?使用0
访问根目录没有任何意义,但是parsedResponse.variants[0]
应该可以工作。