2017-02-13 141 views
1

當我做如何訪問JSON的元素角2

loadPeople(){ 

    this.myService.load().then(data => { 
      this.people = data; 
      alert(this.people); 
     }); 
    } 

它提醒JSON爲:

{ 
"status": "true", 
"statusCode": 200, 
"response": [{ 
    "user_id": "92", 
    "firstname": "joy", 
    "lastname": "Panchal", 
    "email": "[email protected]", 
    "password": "7Y7+K0vZIVWPDUQH++Iu+/+tMZ", 
    "user_type_id": "1" 
}, { 
    "user_id": "89", 
    "firstname": "mark", 
    "lastname": "haris", 
    "email": "[email protected]", 
    "password": "4JICqnTkR8ysTI+nQQ+rpfAf7e", 
    "user_type_id": "1" 
}] 

}

現在

我試圖通過

訪問 「迴應」
loadPeople(){ 

this.myService.load().then(data => { 
     this.people = data.response; 
     alert(this.people); 
    }); 
} 

但它警報爲「未定義」。

任何人都可以告訴我在哪裏失蹤?

+0

應該完全正常工作。 http://jsfiddle.net/ADukg/10046/ – Matheno

+0

是的,它應該,但不知道出了什麼問題。警報仍然說「未定義」 –

+0

可能this.people尚未填充。 – Matheno

回答

1

您可以訪問這個樣子。請嘗試。

`loadPeople(){ 
    this.myService.load().then(data => { 
    this.people = JSON.parse(data.response); 
    alert(this.people); 
}); 

}`

0

你需要解析JSON第一:

this.myService.load().then(data => { 
    let res = JSON.parse(data); 
    this.people = res.response; 
    alert(this.people); 
    }); 
} 
+0

感謝您的迴應,它表示「屬性'響應'不存在於類型'字符串'。」,因爲它是JSON元素。 –

+0

可以console.log你的'數據'變量 –

+0

是的,console.log當我嘗試使用「this.people = data」時,它會撣掉, 不會發生「this.people = data.response」 –