解析JSON数组并打印salary时控制台无输出,求排查解决
解析JSON数组并打印salary字段无输出的问题修复
问题根源
你的代码和JSON数据存在三个关键问题:
- JSON格式不合法:提供的JSON片段是两个独立对象,不是合法数组,必须用
[]包裹才能被正确解析为数组 - 错误的类型转换:你把解析后的对象数组又用
JSON.stringify()转成了字符串,字符串没有.salary属性,自然打印不出内容 - 未处理数组结构:即使解析正确,目标数据是数组,不能直接通过
.salary访问,需要遍历每个元素获取对应字段
修正后的JSON数据(合法数组格式)
[{"factioname":"sp-force","inviter":"MohammedZr","salary":5000},{"factioname":"air-force", "inviter":"Admin","salary":8000}]
修复后的代码
if (data.action == 'SendArray') { let invites = data.invites; // 解析为数组 const invitesArray = JSON.parse(invites); // 遍历数组打印每个元素的salary invitesArray.forEach(item => { console.log(item.salary); }); }
额外优化建议
- 如果
data.invites本身已经是JS数组(不是JSON字符串),可以直接跳过JSON.parse步骤 - 添加错误捕获,避免JSON解析失败导致代码崩溃:
if (data.action == 'SendArray') { let invites = data.invites; try { const invitesArray = JSON.parse(invites); invitesArray.forEach(item => { console.log(item?.salary || '无salary字段'); }); } catch (err) { console.error('JSON解析失败:', err); } }
内容的提问来源于stack exchange,提问作者MrObscure
相关产品推荐
相关产品推荐

