如何识别JSON响应中的多数组?JS访问Python返回JSON报错排查
解决JS读取JSON数组时的"memory_return"未定义错误
问题根源
报错Uncaught TypeError: Cannot read properties of undefined (reading 'memory_return'),本质是你在JS里把服务器返回的数组结构当成了单个对象来访问,导致找不到对应属性。
修正步骤
1. 明确服务器返回的JSON结构
根据你提供的截图,服务器返回的是JSON数组(格式类似[{...}, {...}]),而非单个JSON对象。
2. 调整JS代码逻辑
场景1:遍历数组展示所有内容
如果需要把数组里的每一条memory_return都渲染到页面,修改JS代码如下:
// 以fetch请求为例 fetch('/你的接口地址') .then(res => res.json()) .then(data => { // data是数组,需遍历每个元素 data.forEach(item => { // 正确访问当前元素的memory_return const content = item.memory_return; // 这里写页面渲染逻辑,比如插入到指定容器 document.getElementById('content-container').innerHTML += `<p>${content}</p>`; }); }) .catch(err => console.log('请求失败:', err));
场景2:仅获取数组第一个元素的内容
如果只需要展示第一条数据:
fetch('/你的接口地址') .then(res => res.json()) .then(data => { // 先判断数组是否为空 if (data.length > 0) { const firstContent = data[0].memory_return; document.getElementById('content-container').textContent = firstContent; } else { document.getElementById('content-container').textContent = '暂无数据'; } }) .catch(err => console.log('请求失败:', err));
3. 确认Python视图返回格式
确保后端返回的是合法的JSON数组,比如Django视图:
from django.http import JsonResponse def memory_view(request): # 模拟从数据库或业务逻辑获取的数组数据 memory_data = [ {"memory_return": "第一条记忆内容"}, {"memory_return": "第二条记忆内容"} ] # safe=False允许返回非字典类型的JSON(数组) return JsonResponse(memory_data, safe=False)
内容的提问来源于stack exchange,提问作者mkch
相关产品推荐
相关产品推荐

