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

JavaScript如何遍历Express从MySQL返回的嵌套JSON列表获取字段值

解决思路

问题根因

你当前解析后的对象长度为1是因为接口返回的结构是外层嵌套了一层数组,数组内唯一对象的JSON字段存储的是未序列化的字符串内容,且字符串内使用单引号不符合JSON标准,无法直接读取字段。

处理步骤

  • 第一步:从第一次解析结果中取出JSON字段对应的字符串内容
  • 第二步:将字符串内的单引号全部替换为双引号,同时在字符串首尾添加方括号,拼接为合法的JSON数组格式
  • 第三步:对处理后的字符串做二次JSON解析,得到可遍历的对象数组

代码实现

// 第一次解析接口返回的JSON
const resp = JSON.parse(xhr.responseText);
// 取出嵌套的JSON字符串,处理格式后二次解析
const profileStr = resp[0].JSON;
const validJsonStr = '[' + profileStr.replaceAll("'", '"') + ']';
const profileList = JSON.parse(validJsonStr);
// 遍历获取字段
profileList.forEach(item => {
  console.log('profile:', item.profile);
  console.log('count:', item.count);
});

优化建议(可选)

如果能调整后端逻辑,推荐在MySQL中直接存储合法的JSON数组类型,Express接口返回时直接把数组赋值给JSON字段,不要转成字符串存储,前端仅需一次解析即可直接遍历,无需额外格式处理。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 18:45:04