Angular 6 JSON десериализация - PullRequest
0 голосов
/ 01 июня 2018

плохо знакомый, я пытаюсь сделать простую вещь!Я хотел бы преобразовать JSON в конкретный объект.Пока не работает.

JSON получен из параметра URL "token", закодированного в base64.

Вот код:

this.decodedToken: ViewToken = JSON.parse(JSON.stringify(this.DecodeBase64(this.token)));

console.log('token exists: ' + this.token);
console.log('token decoded: ' + this.decodedToken);            
console.log('token target: ' + this.decodedToken.target);
console.log('token access: ' + this.decodedToken.accessToken);

Целевой объект:

export class ViewToken {

    target: string;
    accessToken: string;

}

И вот результат:

token exists: ew0KICAgIHRhcmdldDogIm15VGFyZ2V0IiwNCiAgICBhY2Nlc3NUb2tlbjogIlRHOXlaVzBnYVhCemRXMGdaRzlzYjNJZ2MybDBJR0Z0WlhRc0lHTnZibk5sWTNSbGRIVnlJR0ZrYVhCcGMyTnBibWNnWld4cGRBPT0iDQp9 
token decoded: {
    target: "myTarget",
    accessToken: "TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdA=="
}
token target: undefined
token access: undefined

Я перепробовал много решений, но ни одно из них не сработало!Я до сих пор не могу сопоставить JSON своему объекту.

Решения, которые я до сих пор пробовал:

  • json2typescript package -> выдает ошибку в функции десериализации
  • метод fromJson -> дает мне таблицу каждого символа в json

    static fromJson(json: any) {
    
        let obj: IViewToken = Object.create(ViewToken.prototype);
    
        return Object.assign(obj, json, {
            target: json.target,
            accessToken: json.accessToken
        });
    
    }
    
  • ключ отображения объекта, значение для объекта -> не работает, так как атрибуты объекта jsonне определены

РЕДАКТИРОВАТЬ:

Исправление, чтобы заставить его работать: мне не нужно JSON.stringify мой декодированный токен base64

this.decodedToken = JSON.parse(this.DecodeBase64(this.token));
...