代码之家  ›  专栏  ›  技术社区  ›  user3516604

获取数组中的位置

  •  1
  • user3516604  · 技术社区  · 7 年前

    我收到来自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]);
    });
    

    控制台返回:

    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: [
    

    相反,返回一个对象,数组在零位置返回“[”。

    1 回复  |  直到 7 年前
        1
  •  7
  •   Barmar    7 年前

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

    response = JSON.parse(data.response);
    

    如果您对API有控制权,那么应该调查它为什么要对这个元素进行编码,而不是在它对整个数据进行编码时将其保留为数组。很少需要这样的双重编码。