我正在尝试从我的JSON API获取特定数据,但我总是在我的控制台中获得undefine
。
这是我的TS文件,我使用http get
来获取我的JSON API:
我的TS代码:
this.http.get('http://xxxxx.com/xxx/api.php/customer?filter=customer.customer_id,eq,21&transform=1')
.map(res => res.json())
.subscribe(data => {
this.customer = data.customer;
console.log(this.customer);
this.cus_city = this.customer.customer_delivery_city_address;
console.log("City Address: " +this.cus_city)
}, (err) => {
console.log("Something went wrong.");
});
以下是我的控制台中的API结果:
我想得到的是customer_delivery_city_address
。我尝试将this.customer.customer_delivery_city_address
传递给this.cus_city
变量并将其显示到我的控制台console.log("City Address: " +this.cus_city)
,但我得到undefined
结果。当我将其调用到我的HTML {{customer.customer_delivery_city_address}}
时,一切都很好。我仍然不知道如何将特定数据提供给我的TS文件。希望任何人都可以帮助我。提前谢谢。
答案 0 :(得分:2)
我认为即将发生的响应就是阵列。你应该试试这个:
this.customer[0].customer_delivery_city_address
答案 1 :(得分:1)
this.customer
是一个数组而不是一个对象。按索引访问customer_delivery_city_address
属性。
this.cus_city = this.customer[0].customer_delivery_city_address;
console.log("City Address: " +this.cus_city)
答案 2 :(得分:1)
我会这样做。
customer: any;
getCustomer() {
return this.http.get('url').map((res: Response) => res.json());
}
loadCustomer(){
this.customer = [];
this.getCustomer().subscribe(d => {
for (var i = 0; i < d.length; i++) {
this.customer.push(d[i]);
}
}, err => {console.log(err)})
}
//在视图中
<div *ngFor="let c of customer">
{{c.customer_delivery_city_address}}
</div>
当 this.customer 是一个数组时,你想要 this.customer.customer_delivery_city_address ,如果你想要第一个元素,你可以做这个。 customer = data.customer [0] 。
<div>
{{customer.customer_delivery_city_address}}
</div>