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

如何识别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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 12:20:50