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

在JavaScript中遍历JSON表遇取值问题求助

解决JavaScript中JSON结构访问返回Undefined的问题

嘿,我一眼就看出问题出在哪了!你的data.languages是一个数组,不是你以为的普通对象,这就是为什么你直接用点语法访问english会得到undefined的原因。

先看你的数据结构细节

你的languages.js里定义的结构是这样的(简化版):

var data = { 
  "languages" : [  // 这里的方括号[]表示这是一个数组
    { 
      "english" : { "dontRefresh" : "Do not refresh the page!" }, 
      "russian" : { ... } 
    } 
  ] 
}

注意languages对应的是一个只有1个元素的数组,数组里的第一个元素才是包含english、russian这些语言对象的容器。

正确的取值方式

你之前尝试的data.languages.english是错误的,因为数组不能直接通过属性名访问内容,得先通过索引拿到数组里的对象:

// 先取数组的第一个元素(索引0),再访问english下的dontRefresh
console.log(data.languages[0].english.dontRefresh);
// 或者用括号语法也可以
console.log(data.languages[0].english['dontRefresh']);

这样就能正确输出Do not refresh the page!了。

调试小技巧

以后遇到这种[Object object]看不清结构的情况,可以用JSON.stringify()把对象转成字符串打印,就能清晰看到完整结构:

console.log(JSON.stringify(data.languages, null, 2));

这样输出的内容会格式化显示,你能一眼分辨出哪些是数组(方括号),哪些是对象(大括号),避免再犯类似的错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 05:16:35