Я получил "undefined", пытаясь проанализировать этот файл JSON:
{
"responses": [
{
"labelAnnotations": [
{
"mid": "/m/01yrx",
"description": "cat",
"score": 0.9926739,
"topicality": 0.9926739
},
{
"mid": "/m/01l7qd",
"description": "whiskers",
"score": 0.9639658,
"topicality": 0.9639658
},
{
"mid": "/m/083jv",
"description": "white",
"score": 0.9582038,
"topicality": 0.9582038
},
{
"mid": "/m/0k0pj",
"description": "nose",
"score": 0.9425352,
"topicality": 0.9425352
},
{
"mid": "/m/06z04",
"description": "skin",
"score": 0.92025506,
"topicality": 0.92025506
}
]
}
]
}
Этот файл является результатом XMLHttpRequest из API видения google. Это то, что я делаю, чтобы напечатать поле описания:
e.onload=function(){
var i= JSON.parse(e.response);
value = i.responses[0]["description"];
alert(value);
};
"undefined" исходит из нижеследующего утверждения
value = i.responses[0]["description"];
как labelAnnotations - это объект внутри массива, который вы найдете в описании, используя
value = i.responses[0].labelAnnotations[0]["description"];
value = i.responses[0].labelAnnotations[0]["description"];