无法在 javascript 中访问内部 json 数组,但可以控制台记录完整的 json
inner json array cannot be accessed in javascript, but can console log the complete json
console.log(e.responseText);
testNature(e.responseText.responses[0]);
我无法使用 JSON 响应的内部数组,它说:-
'Uncaught TypeError: 无法读取 属性 '0' of undefined'
当我控制台记录 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]) 。我从 google 云视觉 API
得到了 JSON
您看到的错误可能是 responseText
对象不包含 responses
属性 的结果。您提供的示例有效。
const 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
}
]
}
]
}
}
const testNature = o => { console.log(o); }
testNature(e.responseText.responses[0]);
简短版
使用以下方法将字符串转换为对象:
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
将其转换为对象
console.log(e.responseText);
testNature(e.responseText.responses[0]);
我无法使用 JSON 响应的内部数组,它说:-
'Uncaught TypeError: 无法读取 属性 '0' of undefined'
当我控制台记录 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]) 。我从 google 云视觉 API
您看到的错误可能是 responseText
对象不包含 responses
属性 的结果。您提供的示例有效。
const 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
}
]
}
]
}
}
const testNature = o => { console.log(o); }
testNature(e.responseText.responses[0]);
简短版
使用以下方法将字符串转换为对象:
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