如何在ionic2中使用响应对象

时间:2017-07-16 11:52:33

标签: angular ionic2 angular2-services

我正在使用ionic2,我正在使用http post请求从webservice获取数据,返回的数据是:

  

回复{_body:" {"状态":{"列出所有类别":[{" id":9," name_en ... 18}]," message":["所有类别。"],"版本":27}}",状态:200, ok:true,statusText:" OK",header:Headers ...}   头   :   头   好   :   真正   状态   :   200   状态文本   :   " OK"   类型   :   2   网址   :   " http://safe-pay.co/safepay/public/api/user"   _身体   :   " {"状态":{"列出所有类别":[{" id":9," name_en":&# 34;电信"" name_ar":" \ u0627 \ u062a \ u0635 \ u0627 \ u0644 \ u0627 \ u062a""图像":&#34 ; HTTP://safe-pay.co/safepay/public/uploadedimg/categories/5937ec7b75164.PNG","描述":"电信"" cat_enet_id&# 34;:1},{" id":7," name_en":"在线优惠券"," name_ar":" \ u0628 \ u0628 \ u0627 \ u0627 \ u062a \ u062a \ u0628 \ u0628 \ u0622 \ u0628 \ u0628 \ u0622 \ u0628 \ u0628 \ u0627 \ u0626 \ u0626 \ u062a \ u0626 \ u0626 \ u062a \ u 3462 \ u0626 \ u062a"," image":" http://safe-pay.co/safepay/public/uploadedimg/categories/5937f109a226b.png","说明":"在线优惠券&# 34;," cat_enet_id":5},{" id":8," name_en":"电视频道"," name_ar":" \ u0645 \ u062d \ u0662 \ u0627 \ u062a \ u062a \ u0644 \ u0641 \ u0632 \ u064a \ u0648 \ u0646 \ u064a \ u0629"," image": " HTTP://safe-pay.co/safepay/public/uploadedimg/categories/5937ecb48cef3.PNG ","说明":"电视频道"," cat_enet_id":6},{" id":10,&# 34; name_en":" Digital Games"," name_ar":" \ u0627 \ u0644 \ u0662 \ u0627 \ u0628 \ u0626 \ u0626 \ u062a \ u0631 \ u0646 \ u062a""图像":" HTTP://safe-pay.co/safepay/public/uploadedimg/categories/5937eccc27ce8.png","描述&# 34;:"游戏和#34;" cat_enet_id":17},{" ID":11," name_en":"娱乐及#34;," name_ar":" \ u0627 \ u0644 \ u062a \ u0631 \ u0641 \ u064a \ u0647 \ u0644 \ u0644 \ u0623 \ u0664 \ u0641 \ u0627 \ u0644",& #34;图像":" HTTP://safe-pay.co/safepay/public/uploadedimg/categories/5937f5ae9​​7fe6.png","描述":"游戏"," cat_enet_id":18}],"消息":["所有类别。"],"版本": 27}}"   的   :   体

这是功能:

getCategories() {
let objData = {"Data":{
        "action": "CATEGORIES",
        "lang": "AR"
    },
    "Request": {

    }
}

var headers = new Headers();
headers.append('Content-Type', 'application/json');

this.http.post(this.userUrl, objData, {headers:headers})
    .subscribe(data => {
        this.categories = data
        console.log("categories array ",this.categories," data ",Promise.resolve(data));
    }, error => {
        console.log("Oooops! ",error);
    });
}

如何从数组中获取数据

1 个答案:

答案 0 :(得分:0)

您应该将其映射到json()格式

this.http.post(this.userUrl, objData, {headers:headers})
         .map(response=><T>response.json())
         ...

注意:需要导入map运算符,可以从

完成
import 'rxjs/add/operator/map';
要转换json()的

T类型。