AWS Lambda与API Gateway集成:请求Body无法访问值问题求助
解决AWS Lambda中event.body无法访问属性的问题
API Gateway传给Lambda的event.body本质是JSON字符串,不是解析后的对象,所以直接用点运算符或方括号访问属性会失效。
正确处理步骤
- 先将
event.body解析为JavaScript对象:
const parsedBody = JSON.parse(event.body);
- 解析完成后,就可以正常访问所有属性:
- 获取message:
console.log(parsedBody.message); // 输出 "This is a dummy message"
- 遍历items中的所有菜品:
for (const itemKey in parsedBody.items) { const dish = parsedBody.items[itemKey]; console.log(`菜品:${dish.name},价格:${dish.price},数量:${dish.qty}`); }
- 访问特定key的菜品:
const chickenTandoori = parsedBody.items["1681393109842MIN:01GXX9JHKHP5ZDW92NRRNPBHA4"]; console.log(chickenTandoori.name); // 输出 "Chicken Tandoori"
为什么之前的方案无效
- 直接用方括号访问:因为
event.body是字符串,不是对象,字符串的方括号只能访问字符索引,无法读取JSON结构里的属性 - 深拷贝对象:拷贝的是原始的JSON字符串,没有完成解析,自然还是无法访问对象属性
内容的提问来源于stack exchange,提问作者Debarka Mondal
相关产品推荐
相关产品推荐

