Saya membuat panggilan API POST di Angular 8. Saya harus mengirim objek JSON dalam panggilan yang seharusnya berstruktur:

-{}JSON
  -{}data
     -[]exp
        +{} 0
        +{} 1

Tapi saya mengirim data dalam format ini:

-[]JSON
   +{} 0
   +{} 1

Dalam TypeScript saya, saya mendapatkan dua objek {}0, {}1 dalam array bernama: receivedData lalu saya menyimpan data seperti:

this.changedData = this.receivedData;
this.postService.postMethod(this.headers, this.changedData)

Di layanan pos saya:

postMethod(header, changedData): Observable<any[]> {
return this.http.post<any>(`the url here`, changedData, {headers: header, responseType: 'text' as 'json'})
.pipe(map(response => {
return response;
}))
}

Bagaimana cara mengirim data dalam format yang disebutkan? Saya ingin struktur json changedDetails seperti yang disebutkan di atas dengan konvensi penamaan yang sama seperti: {}data and []exp Bagaimana saya bisa mendorong receivedData objects ke exp[] yang kemudian dapat saya kirim ke data{} yang kemudian akan sepenuhnya didorong ke changedDetails {}

-1
Vishavgeet 10 Juli 2020, 17:19

1 menjawab

Jawaban Terbaik

Agar kita berada di halaman yang sama, saya membayangkan Anda menerima data dengan bentuk berikut:

[ { ... },  { ... } ]

Dan Anda ingin mengubahnya menjadi bentuk ini:

{
  data: {
    exp: [ { ... }, { ... } ]
  }
}

(Beri tahu saya jika ini bukan masalahnya.) Jika ini benar, maka transformasinya cukup mudah: cukup buat objek baru literal seperti ini:

this.changedData = {
  data: {
    exp: this.receivedData,
  },
};
1
William Lewis 10 Juli 2020, 14:32