我有一个名为arrayToSubmit
的JSON对象。以下是代码:
location = "Johannesburg, South Africa";
type = "bench";
qty = 1;
assetNumber = 15;
arrayToSubmit = {
location : {
type : {
'qty' : qty,
'assetNumber' : assetNumber
}
}
}
但是chrome的结果如下:
Object{location { type : {"qty" : "1", "assetNumber" : "15"}}}
我需要用初始代码中的变量替换单词location和type,如下所示:
Object{"Johannesburg, South Africa" = { "bench" = {"qty" - "1", "assetNumber" : "15"}}}
(我从我的页面中提取这些值,我只是在这里输入它们以方便使用)。
我已经尝试了这两个示例,但不知道如何以多级格式获取它。
答案 0 :(得分:3)
您可以使用bracket notation,就像这样
var arrayToSubmit = {};
arrayToSubmit[location] = {};
arrayToSubmit[location][type] = {
'qty': qty,
'assetNumber': assetNumber
};
答案 1 :(得分:1)
您必须使用[]运算符将变量值用作键。在对象初始值设定项{}中声明属性时,键始终为字面值。
你这样做:
var location = "Johannesburg, South Africa";
var objectToSubmit = {};
objectToSubmit[location] = {...};
希望这有帮助。
答案 2 :(得分:0)
考虑以下代码:
arrayToSubmit = {};
obj = {};
obj[type] = {
'qty' : qty,
'assetNumber' : assetNumber
};
arrayToSubmit[location] = obj;
答案 3 :(得分:0)
首先,不要使用'location',它会干扰window.location变量。
arrayToSubmit = {};
arrayToSubmit[loc] = {};
arrayToSubmit[loc][type] = {
'qty' : qty,
'assetNumber' : assetNumber
};