@zlodiak

Почему JSON.parse не кушает строку?

Я запрашиваю у бекенда объект так:

сервис:

@Injectable()
export class UserService {

  constructor(private httpClient: HttpClient) { }

  authUser(login) {
    return this.httpClient.get(Config.host + 'users/get_user?login=' + login);
  }

}


Обработчик клика в компоненте:
submit() {
    const login = this.form.controls.login.value;
    this.userService.authUser(login).subscribe(user => {
      console.log(typeof user, user)
      console.log(JSON.parse(user));
    });
  }


В результате в консоль выводится тип ответа и ответ:
string [{"model": "app_users.user", "pk": 1, "fields": {"login": "prozaik81-2@yandex.ru", "fname": "kalinin", "lname": "sergey"}}]


Видно, что в обработчике я заворачиваю ответ в JSON.parse() чтобы в дальнейшем была возможность работать с ответом в виде массива. Но консоль выводит такую ошибку:
webpack: Compiled successfully.
ERROR in src/app/components/login/login.component.ts(27,30): error TS2345: Argument of type 'Object' is not assignable to parameter of type 'string'.


Подскажите пожалуйста как исправить ситуацию.
  • Вопрос задан
  • 446 просмотров
Решения вопроса 1
Vlad_IT
@Vlad_IT Куратор тега JavaScript
Front-end разработчик
Эта ошибка не выполнения, а компиляции. Следите за типами. Попробуйте это console.log(JSON.parse(user)); заменить на
console.log(JSON.parse(user.toString()));
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы