You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular 6中JSON反序列化为指定对象失败求助

Angular中Base64解码后的JSON转换为ViewToken对象问题解决

嘿,我来帮你理清楚这个问题的根源和解决方案:

你的核心问题出在多余的JSON.stringify调用上!当你执行JSON.parse(JSON.stringify(this.DecodeBase64(this.token)))时,相当于把解码后的JSON对象先转成了字符串,再用JSON.parse解析这个字符串——最终得到的其实是字符串本身,而不是包含target和accessToken属性的对象,这就是为什么访问这两个属性时返回undefined。

修正后的代码

你已经找到正确的修正方式了,直接去掉JSON.stringify即可:

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

为什么之前的其他方案失效?

  • 使用json2typescript包反序列化报错:因为你传入的不是原始的JSON对象,而是经过stringify转换后的字符串,反序列化工具无法识别这种格式
  • 自定义fromJson方法得到字符数组:同样是因为处理的是字符串而非对象,方法把字符串当成了字符序列来解析
  • 键值对映射对象失效:此时decodedToken是字符串类型,根本没有target和accessToken这些属性键,自然无法完成映射

内容的提问来源于stack exchange,提问作者Dams

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:55:54