AJAX请求本地JSON文件读取name属性返回undefined问题求助
问题根因
你通过JSON.parse得到的user变量不是单个用户对象,是包含1个用户对象的数组。
你提供的user.json最外层用方括号[]包裹,这是JSON数组的标识,数组的第1个元素(索引为0)才是你需要的用户对象,所以直接取user.name会返回undefined,加索引[0]取值正常。
两种解决方案
- 方案1:保留现有JSON结构,修改JS取值逻辑
直接使用你测试可行的写法即可,适合后续需要在user.json中扩展存储多个用户的场景:console.log(user[0].name); - 方案2:修改JSON文件结构,匹配教程示例写法
把user.json最外层的方括号删除,改成纯对象结构:
修改后{ "id": 1, "name": "Rick", "email": "rick@mail.com" }JSON.parse返回值为单个对象,直接使用user.name即可正常取值。
补充说明
你直接打印this.responseText能看到完整内容是正常的,此时打印的是未解析的原始JSON字符串,还没有被转换为JS数组/对象类型,不存在取值逻辑错误。你的XAMPP运行环境、Chrome浏览器均无异常,无需排查环境问题。
内容的提问来源于stack exchange,提问作者Lexiriam
相关产品推荐
相关产品推荐

