Учитывая этот упрощенный сценарий:

export class LoginComponent{ 
   grant_type: string="password"; 
   jsonPayload: string; 

   Login(username, password){
      this.jsonPayload = JSON.stringify(username, password, this.grant_type);
   }
}

Похоже, stringify сбивает с толку «this» в TypeScript. Итак, как мне сделать здесь правильно сформированный JSON?

Спасибо,

LargeDachshund

Ответов: 1

Ответы (1)

stringify accepts three arguments, which are:

  • The thing to stringify
  • The replacer function to use
  • The indentation to use

You're passing it a non-function (password) as the second argument.

You probably mean to pass it one argument, an object to stringify:

this.jsonPayload = JSON.stringify({
    username,
    password, 
    grant_type: this.grant_type
});

or if you want to be explicit with all three since the last one needs it:

this.jsonPayload = JSON.stringify({
    username: username,
    password: password, 
    grant_type: this.grant_type
});

2022 WebDevInsider