怎樣OUTPUT JSON DATA?

我的程式是由PHP 裏讀取DATA,然後在ANGULAR 輸出資料,但是當我想輸出console.log(this.studdata.list_id) 時,它顯示undefined。

public userid: string;

studdata: Studentinformation;

ngOnInit(): void {

const options = { responseType: 'text' as 'json'};

const myformdata = new FormData();

const uid = +this.route.snapshot.paramMap.get('id');

this.userid = uid.toString();

myformdata.append('id', this.userid);

this.http.post('http://127.0.0.1/api/edituser.php', myformdata, options).subscribe((getstuddata: any) => {

  this.studdata = getstuddata;

  console.log(this.studdata);
  output: 

[
{
“list_id”: “2”,
“list_first_name”: “Albert”,
“list_last_name”: “Williamson”,
“list_email”: “awilliamson1@narod.ru”,
“list_country”: “China”,
“list_modified”: “2015-03-11 00:00:00”,
“list_vip”: “True”
}
]
console.log(this.studdata.list_id);
output: undefined

});

你的 studdata 接到的值是陣列還是物件? 如果是陣列,
this.studdata.list_id 當然不存在,他是存在於陣列的第一個位置,所以會是 this.studdata[0].list-id

我嘗試了,仍然不能this.studdata[0].list_id 輸出2.,是否JSON DATA 沒有儲存去studdata?
我定義了Studentinformation資料如下:
export interface Studentinformation

{

id: String;

first_name: String;

last_name: String;

email: String;

country: String;

modified: String;

vip: boolean;

}

thank you very much.

console.log(this.studdata) 這個輸出的結果長什麼樣子?

console.log(this.studdata) 輸出:
[
{
“list_id”: “2”,
“list_first_name”: “Albert”,
“list_last_name”: “Williamson”,
“list_email”: “awilliamson1@narod.ru”,
“list_country”: “China”,
“list_modified”: “2015-03-11 00:00:00”,
“list_vip”: “True”
}
]

難道 php 輸出出來的是文字而不是 JSON 格式嗎? 這個你要確認一下,如果是純文字,那你還要將文字轉換成JSON 物件才能操作,這要看你 API 吐出來的格式是什麼了。

我在PHP 裏輸出了以下JSON 資料:
[{list_id: “2”, list_first_name: “Albert”, list_last_name: “Williamson”,…}]
0: {list_id: “2”, list_first_name: “Albert”, list_last_name: “Williamson”,…}

它應該不是純文字

如果是陣列,那就是陣列操作而已,沒什麼特別技巧

但是我在程式裏打console.log(this.estuddata[0]);
它輸出: “[”
這樣是否它沒有儲存資料在object 裏?

那表示 api 回傳給你的是文字而不是 json (angular 會自動將 json 格式的資料轉換成物件類型)

但我在PHP 檢查了,它輸出給我是JSON格式。

你用 postman 打看看 API. 這邊已經跟程式碼沒有關係了,而是對於 API 基本概念的理解

原來POST 傳入API JSON 去angular 會變成文字,要在program 裏加JSON.parse,將文字變成JSON 資料就可以了。
thank you very much.