console.log(e.responseText); testNature(e.responseText.responses[0]);
我不能使用它说的JSON响应的内部数组:-
“未捕获的TypeError:无法读取未定义的属性'0'”
当我控制台登录e.responseText时,我得到:-
{
"responses": [
{
"labelAnnotations": [
{
"mid": "/m/06mb1",
"description": "rain",
"score": 0.930509,
"topicality": 0.930509
},
{
"mid": "/m/0838f",
"description": "water",
"score": 0.91255623,
"topicality": 0.91255623
},
{
"mid": "/m/01ctsf",
"description": "atmosphere",
"score": 0.86684966,
"topicality": 0.86684966
},
{
"mid": "/m/04k84",
"description": "light",
"score": 0.8194458,
"topicality": 0.8194458
},
{
"mid": "/m/01bqvp",
"description": "sky",
"score": 0.7569251,
"topicality": 0.7569251
}
]
}
]
}
但不能使用内部数组
e.responseText.responses[0]
调用函数testNature(e.responseText.responses [0])。我从谷歌云视觉API获取了JSON 最佳答案
简洁版本
使用以下命令将字符串转换为对象:
responseText = JSON.parse(responseText);
说明
e.responseText.responses[0]
给出错误-无法读取未定义的属性0
表示
e.responseText.responses
未定义。表示
e.responseText
没有定义的属性responses
表示
e.responseText
不是我们要寻找的对象。在这种情况下,它表示
e.responseText
的类型可能是字符串要确认,请使用以下命令记录相同的数据类型:
console.log(typeof(e.responseText))
如果给出输出
string
,则使用JSON.parse
将其转换为对象关于javascript - 内部json数组无法在javascript中访问,但可以控制台记录完整的json,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53718088/