плохо знакомый, я пытаюсь сделать простую вещь!Я хотел бы преобразовать 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));