Mirth JSON 对象填充

问题描述 投票:0回答:1

我需要帮助尝试填充此对象结构。

{
   "fields": {
       "project":
       {
          "key": "TEST"
       },
       "summary": "Who seeks a faultless friend RESTs friendless.",
       "description": "Creating an issue and setting time tracking fields",
       "issuetype": {
          "name": "Bug"
        }
    }
}

我尝试过这个,但它不喜欢它。我收到“无法从未定义中读取属性项目”。

var newObject = {code:{}};
newObject['fields']['project']['key']="X";
newObject['fields']['summary']= "Y";
newObject['fields']['issuetype']['name'] = "Z";
newObject['fields']['assignee']['name'] = "A";
newObject['fields']['priority']['name'] = "B";
javascript mirth
1个回答
0
投票

“无法从未定义的属性读取属性项目”意味着您正在尝试从不存在的属性访问值。在您的上下文中,javascript 正在尝试访问“project”,但 project 之前的属性(又名 newObject['fields'])未定义。

您正在尝试快速填充您的对象,呵呵。您必须在添加任何键和值之前创建每个属性。换句话说,一步一步来。

有几种方法可以解决这个问题,这里有两种:

解决方案#1

创建 newObject 时添加属性,如下所示:

 var newObject = {
    fields: {
    project: {},
    issuetype: {},
    assignee: {},
    priority: {}
  }
};

然后继续使用您拥有的相同代码并填充每个属性中的键。

解决方案#2

var newObject = {code:{}};
newObject.fields = {}; // First create the property
newObject['fields']['project'] = {}; // Then add new keys & values
newObject['fields']['project']['key']= "X";

newObject.fields.issuetype = {}; // First create the proprerty issuetype
newObject.fields.assignee= {}; // First create the proprerty assignee
newObject.fields.priority= {}; // First create the proprerty priority
newObject['fields']['issuetype']['name'] = "Z"; // Then add new keys & values
newObject['fields']['assignee']['name'] = "A"; // ...
newObject['fields']['priority']['name'] = "B"; // ...
© www.soinside.com 2019 - 2024. All rights reserved.