node.js - I Angular, hur man analyserar och extraherar HTTP-svar som har en komplex struktur (JSON)?
Jag är ny på Angular och behöver din hjälp här. Jag har en Angular-tjänst som har en API-anropande funktion som visas nedan.
searcheBay() {
console.log("calling ebay service");
return this.httpClient.get (this.ebayURL);
}
och jag anropar denna funktion från komponenten som visas nedan.
this.searchService.searcheBay().subscribe((data) => {
this.svcdata = data
});
Datavariabeln har en komplex JSON-struktur (se bilden nedan).
Den data jag vill läsa finns i elementet "searchResult". Kan du föreslå hur man kan analysera och extrahera elementet "searchResult"? Tack på förhand.
Jag felsökte i Safari DEV-konsolen och ser elementets tillgänglighet som visas nedan.
När jag uppdaterade samma kod i min komponent, stöter jag på kompilering: ERROR in src/app/search/search.component.ts(20,29): error TS2339: Egenskapen 'findItemsByKeywordsResponse' finns inte på typen 'Object'. Vänligen ge dina tankar.
serviceOnButtonClick(){
this.searchService.searcheBay().subscribe((data) => {
this.svcdata = data.findItemsByKeywordsResponse[0].searchResult
});
Svar #1
@javapedia.net prova detta, om du svarar data Objektet är samma som du visade på bilden,
this.searchService.searcheBay().subscribe((data) => {
this.svcdata = data.findItemsByKeywordsResponse[0].searchResult;
console.log(this.svcdata);
});
Redigera
this.searchService.searcheBay().subscribe((data: any) => {
this.svcdata = data.findItemsByKeywordsResponse[0].searchResult;
console.log(this.svcdata);
});
Svar #2
Jag slutade med att använda kartprojektionen som visas nedan. Hoppas detta hjälper.
serviceOnButtonClick(){
this.searchService.searcheBay().pipe(map((data:any) => data.findItemsByKeywordsResponse[0].searchResult)).subscribe((data) => {
this.svcdata = data;
console.log(this.svcdata);
});
}

