我需要帮助尝试填充此对象结构。
{
"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 正在尝试访问“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"; // ...