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

原生JS:JSON字段为null时添加空数组字段报错的解决方法

问题分析与修复方案

问题出在哪里?

你遇到的TypeError原因很直接:当finalResponse.SubSpeciesInfo是null时,你试图给这个null值设置SubSpeciesList属性——但**null不是对象,它没有任何可修改的属性或方法**,直接操作它的子属性必然会抛出错误。

你的代码逻辑里遗漏了关键一步:在给SubSpeciesList赋值前,需要先把SubSpeciesInfo初始化为一个有效的空对象。

修复后的代码

这里有两种简洁的修复方式,完全基于原生旧版JS(兼容Rhino引擎):

方式1:分步初始化(逻辑更清晰)

if(finalResponse.SubSpeciesInfo == null) { 
  log.info("NO SUBSPECIES"); 
  // 先将SubSpeciesInfo转为空对象
  finalResponse.SubSpeciesInfo = {};
  // 再给对象添加SubSpeciesList属性
  finalResponse.SubSpeciesInfo.SubSpeciesList = []; 
}

方式2:一次性赋值(更简洁)

if(finalResponse.SubSpeciesInfo == null) { 
  log.info("NO SUBSPECIES"); 
  // 直接把SubSpeciesInfo初始化为包含目标属性的对象
  finalResponse.SubSpeciesInfo = { SubSpeciesList: [] };
}

为什么这样能解决问题?

在JavaScript中,null是一个表示"无"的原始值,不属于引用类型的对象。只有当SubSpeciesInfo是一个对象(哪怕是空对象)时,你才能给它添加或修改子属性。上面的修复先让SubSpeciesInfo成为有效的对象,再设置SubSpeciesList为空数组,完美匹配你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:44:40