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: [
代わりにオブジェクトを返し、配列は位置0の「[」だけに戻ります。
response
は明らかにJSON文字列であり、配列ではないためresponse[0]
、文字列の最初の文字を返します。使用する:
response = JSON.parse(data.response);
APIを制御できる場合は、データ全体をエンコードするときに配列として残すのではなく、なぜこの要素をエンコードするのかを調査する必要があります。このようなダブルエンコーディングが必要になることはめったにありません。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加