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

Node.js/Javascript中使用Object.values获取JSON描述值报错解决

问题修复方案

你的代码报错是因为当description不存在时,Object.values(data)[0]?.description会返回undefined,而Object.values()不能接收undefined作为参数,导致抛出"Cannot convert undefined or null to object"错误。

以下是修复后的代码,实现存在时取描述值、不存在返回空字符串的需求:

const jsonValue = [
  { 
    files:{
      title:{ "en": "test" },
      description:{ "en": "dummy description" }
    }
  },
  { 
    files:{
      title:{ "eu": "without description" }
    }
  },
];

jsonValue.map((data) => {
  // 先安全获取description对象,不存在则用空对象兜底
  const descObj = data.files?.description ?? {};
  // 获取所有语言对应的描述值,取第一个(或根据需求处理多个值)
  const des = Object.values(descObj)[0] ?? "";
  console.log(des);
});

关键优化点:

  • 直接使用data.files替代Object.values(data)[0],代码更清晰且避免不必要的数组操作
  • 用?? {}给不存在的description兜底,确保Object.values()始终接收对象参数
  • 通过[0] ?? ""处理描述值为空数组的情况,返回空字符串

如果你的场景中description可能包含多个语言值,需要输出所有值的话,可以改成:

const des = Object.values(descObj).join(' ') ?? "";

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 07:09:40