Mirth中JSON对象填充报错求助:无法读取undefined的project属性
解决Mirth中JSON对象构建的"Cannot read property project from undefined"错误
报错原因
你的代码触发错误的核心问题有两个:
- 初始化的对象结构完全偏离目标JSON:你创建的是
{code:{}},但目标JSON的顶层属性是fields,导致newObject['fields']一开始就是undefined,后续访问['project']自然抛出"Cannot read property project from undefined"。 - 直接赋值未初始化的嵌套属性:即使修正了顶层属性,
project、issuetype这类嵌套对象如果没有提前定义,直接访问其深层属性也会触发类似错误。
修正后的代码
方式一:先初始化框架再赋值
// 先按照目标JSON结构搭建完整的嵌套对象框架 var newObject = { fields: { project: {}, issuetype: {}, assignee: {}, priority: {} } }; // 逐个给属性赋值 newObject['fields']['project']['key'] = "X"; newObject['fields']['summary'] = "Y"; newObject['fields']['issuetype']['name'] = "Z"; newObject['fields']['assignee']['name'] = "A"; newObject['fields']['priority']['name'] = "B"; // 若需要description字段,可补充: // newObject['fields']['description'] = "创建问题并设置时间跟踪字段";
方式二:初始化时直接赋值(更简洁)
var newObject = { fields: { project: { key: "X" }, summary: "Y", issuetype: { name: "Z" }, assignee: { name: "A" }, priority: { name: "B" }, // description: "创建问题并设置时间跟踪字段" // 按需添加 } };
验证说明
修正后的代码会生成符合你需求的JSON结构,所有嵌套对象均已提前定义,不会出现访问未定义属性的错误,可直接在Mirth中使用。
内容的提问来源于stack exchange,提问作者Paul Riker
相关产品推荐
相关产品推荐

