在阵列中获得位置

use*_*604 1 javascript arrays

我收到了来自API的回复,但我无法访问此响应中的数组位置.

fileTransfer.upload(this.imageURI, environment.restUrl + "Upload/addIonic", options)
      .then(data => {
        console.log('data');
        console.log(JSON.stringify(data));
        let response;
        console.log('bytesSent');
        console.log(data.bytesSent);
        response = data.response
        console.log('response');
        console.log(response);
        console.log('response[0]');
        console.log(response[0]);
});
Run Code Online (Sandbox Code Playgroud)

控制台返回:

console.log: bytesSent
[19:51:03]  console.log: 1168539
[19:51:03]  console.log: response
[19:51:03]  console.log:
            [{"fd":"445bcc46-ad55-4079-95d0-9b0deaab7c4c","size":1168430,"type":"image/jpeg","filename":"ionicfile","status":"finished","field":"ionicfile","extra":{"Location":"https://easy-move.s3.amazonaws.com/445bcc46-ad55-4079-95d0-9b0deaab7c4c","Bucket":"easy-move","Key":"445bcc46-ad55-4079-95d0-9b0deaab7c4c","ETag":"\"69ede2190589f905ee8590446caf1cf7-1\"","size":1168430}}]
[19:51:03]  console.log: response[0]
[19:51:03]  console.log: [
Run Code Online (Sandbox Code Playgroud)

而是返回一个对象,该数组只返回位置为零的"[".

Bar*_*mar 7

response显然是一个JSON字符串,而不是一个数组,所以response[0]返回字符串的第一个字符.使用:

response = JSON.parse(data.response);
Run Code Online (Sandbox Code Playgroud)

如果您可以控制API,则应该调查它为什么编码此元素,而不是在编码整个数据时将其保留为数组.很少需要像这样的双重编码.