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

Apigee中JavaScript报错:Cannot set property of undefined问题求助

问题分析与解决

错误原因

报错TypeError: Cannot set property "case" of undefined的核心原因是:你解析后的Backend_Response对象中不存在test属性,直接尝试给Backend_Response.test.case赋值时,Backend_Response.test是undefined,而undefined无法设置子属性。

修正方案

你需要先确保Backend_Response.test是一个有效的对象,再给其case属性赋值。以下是两种可行的修正代码:

方案1:安全初始化test对象(兼容原响应已有test的情况)

如果原响应中可能已经存在test属性(但可能不是对象),可以先判断并初始化:

var Backend_Response = JSON.parse(context.getVariable('response.content'));
// 若test不存在或不是对象,则初始化为空对象
if (!Backend_Response.test || typeof Backend_Response.test !== 'object') {
    Backend_Response.test = {};
}
Backend_Response.test.case = 120;
context.setVariable('response.content', JSON.stringify(Backend_Response));

方案2:直接创建test对象(确定原响应无test属性时使用)

如果确定原响应里没有test属性,可直接创建包含case的对象:

var Backend_Response = JSON.parse(context.getVariable('response.content'));
Backend_Response.test = { case: 120 };
context.setVariable('response.content', JSON.stringify(Backend_Response));

验证效果

执行修正后的代码后,响应内容会被修改为你期望的结构:

{
    "Primary": "Status",
    "test": {
        "case": 120
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 00:27:41