从JSON API获取特定数据

时间:2017-09-13 12:38:54

标签: javascript json angular

我正在尝试从我的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结果:

enter image description here

我想得到的是customer_delivery_city_address enter image description here。我尝试将this.customer.customer_delivery_city_address传递给this.cus_city变量并将其显示到我的控制台console.log("City Address: " +this.cus_city),但我得到undefined结果。当我将其调用到我的HTML {{customer.customer_delivery_city_address}}时,一切都很好。我仍然不知道如何将特定数据提供给我的TS文件。希望任何人都可以帮助我。提前谢谢。

3 个答案:

答案 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>