Я возвращаю JSON из restful API
getUsers() {
return this.http.get('https://myAPI.net/api/TAFGetAllUsers/0')
}
, который вызывается в
users: object;
ngOnInit() {
this.data.getUsers().subscribe(data => {
this.users = data
console.log(this.users)
})
}
Однако консольный вывод представляет собой простой текст JSON:
{ "Users": [
{
"UserId": "4B4D1C12-48FD-4C1D-91F7-03C18FEC8B86",
"UserTypeId": 1,
"Name": "Tommy",
"EmailAddress": "email1@pie.co.uk",
"DateCreated": "2019-03-22T09:28:04.553"
},
{
"UserId": "232D7596-3DD8-40A1-B4B0-15A54A6A102A",
"UserTypeId": 3,
"Name": "Alexis",
"CompanyName": "Sony",
"EmailAddress": "ds3@sony.com",
"DateCreated": "2019-03-20T11:53:53.360"
},
{
"UserId": "1BB22695-1B4D-4E42-8A95-16D1E9B1EF59",
"UserTypeId": 3,
"Name": "Richard",
"CompanyName": "Microsoft",
"EmailAddress": "email2@bob.com",
"DateCreated": "2019-03-20T13:57:22.183"
} ] }
Это не рассматривается как объект.Если я делаю
data[0]
, он просто возвращает '['
Также, если я делаю
data.Users
, он возвращает "undefined".
Я не могу напрямую сделать
JSON.parse(data)
, поскольку он видит данные как объект, выдавая ошибку «Аргумент типа« Объект »не может быть присвоен параметру типа« строка »'"
Я попытался преобразовать объект данных в строку, а затем выполнить синтаксический анализ в JSON
this.rawUsers = JSON.stringify(data);
this.users = JSON.parse(this.rawUsers);
Но это выдает то же самое, что и значение данных по умолчанию, действующее как строка.