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/

10-09 23:08