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

如何解决JavaScript读取JSON单个值时出现undefined的错误

问题排查

错误原因

你触发报错的核心原因是对JSON解析后的对象层级和类型认知错误:

  • 顶层对象的rows属性是数组类型,不是普通对象,数组元素需要通过数字下标访问,不能直接用属性名取数组成员里的字段
  • 你注释掉的那行写法也存在逻辑错误:columns和rows是顶层对象下平级的两个属性,columns数组下不存在rows字段

修复方案

你要读取第一个rows元素里的width值,修改报错行代码为:

console.log(obj["rows"][0]["data"]["width"] + "\n");

如果需要遍历所有rows里的width,可以用循环写法:

obj.rows.forEach(item => {
  // 可选链写法避免某条rows没有data属性时报错
  console.log(item.data?.width)
})

额外优化建议

你写的递归打印函数存在边界问题,如果遇到null值会报错(因为null instanceof Object返回true),可以调整判断逻辑:

function printValues(obj) {
    // 先排除null和非对象类型
    if(typeof obj !== 'object' || obj === null) {
        console.log(obj + "\n")
        return
    }
    for(var k in obj) {
        printValues(obj[k]);
    }
};

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 10:36:09