this.http.get('...... / contacts.json') - 'observable <object>'类型中不存在属性'map'

时间:2018-03-03 21:59:57

标签: arrays json angular object contacts

我尝试将我的contacts-array加载并想要循环它们。 问题是,我将联系人作为对象而不是数组接收,因此我不能使用.map。 这是我的代码段:

loadConJSON() {
    this.http.get('../../assets/data/contacts.json')
    .map(res => res.json())

这会导致以下错误:

Property 'map' does not exist on type 'observable<object>'

这是contacts.json的内容:

{
  "data": [
    {
      "_objectInstance": {
        "id": 383,
        "name": {
          "givenName": "",
          "honorificSuffix": "",
          "formatted": "Schmidt",
          "middleName": "",
          "familyName": "Schmidt",
          "honorificPrefix": ""
        }, ...

如何将对象转换为数组?

编辑: 我想做这样的事情(构建新数组):

let contactsArray = contacts.map(contacts => 
({ id: contacts.id, 
familyName: contacts.name.familyName, 
email: contacts.email.value }));

1 个答案:

答案 0 :(得分:3)

尝试在代码顶部添加以下行:

import 'rxjs/add/operator/map';

或者,使用pipeable operators,这是自Angular / RxJS的最新版本以来推荐的。