javascript - 未读取 Javascript 对象
问题描述
{"ma-steps":"{\"temp_token\":\"5dsed8dfsfsfdfdfsff0145059bd008a1e1a00247b92880bf9de56b153b289c9463c3dbda9f20f47fb9aca94e82ffba5dc2cd566f4c859\",\"reload_ma\":true}","google.message_id":"0:15917211468dfdsfsdfsd","google.sent_time":345543534}"
这是在我调用 JSON.stringify(payload)) 时打印的但是当我执行 var target = payload.ma-steps.temp_token;,它似乎不起作用我得到错误 ReferenceError: steps is not defined
解决方案
破折号 ,-
表示减法,因此不能用于变量名。payload.ma-steps.temp_token
被视为payload.ma
减号steps.temp_token
。它需要一个名为 的变量steps
,该变量不存在,因此出现错误“未定义步骤”。
相反,您可以使用对象表示法来访问该属性。
let target = payload['ma-steps'];
的值似乎ma-steps
是一个 JSON 格式的字符串,因此您需要在引用其中的任何属性之前对其进行解析。
let steps = JSON.parse(payload['ma-steps']);
let target = steps.temp_token;
这是一个工作示例:
var payload = {"ma-steps":"{\"temp_token\":\"5dsed8dfsfsfdfdfsff0145059bd008a1e1a00247b92880bf9de56b153b289c9463c3dbda9f20f47fb9aca94e82ffba5dc2cd566f4c859\",\"reload_ma\":true}","google.message_id":"0:15917211468dfdsfsdfsd","google.sent_time":345543534};
let steps = JSON.parse(payload['ma-steps']);
let target = steps.temp_token;
console.log(target);
推荐阅读
- javascript - 给定 start 函数,编写一个函数来打印学生的字母成绩和班级平均成绩
- c++ - 错误:在“{”标记之前不允许函数定义
- java - 如何使用 Spring + Thymeleaf + JPA 强制数据作为表单提交的一部分
- r - 使用 CLMM2 进行灵敏度功率分析
- r - R For循环将数据帧迭代附加到空矩阵
- python - 使用 pandas 和 seaborn 制作年龄金字塔图
- sql - 日期解析不正确
- html - 移动版查看时网页右下角的间距
- go - 在 localhost 上使用 Golang TCP 连接进行“无限”高数据传输
- apache-spark - 使用 pyspark 使用新模式从另一个镶木地板写入镶木地板