我正在动态构建JSON数据结构。我的代码工作正常,但我有问题,因为我需要设置数据,然后替换密钥名称。
我需要用我的一个变量替换下面的密钥名称 - 我存储在变量中的实际请求类型本身。
我需要为下面的'requestType'键执行此操作。它适用于值,但不能替换键名。
以下是我的代码:
// Create data array, used for building request message
var data = {
requestType: {
item1 : null,
item2 : null,
item3 : null
}
};
// Set the field array variables with data
$('input[name="item1"], [name="item2"], [name="item3"]').each(function(index) {
if(index==0){
data.requestType.item1 = this.value;
} else if(index==1){
data.requestType.item2 = this.value;
} else if(index==2){
data.requestType.item3 = this.value;
}
});
请帮助:)
答案 0 :(得分:4)
如果您说requestType
是包含其他字符串的变量,那么您将使用以下语法:
data[requestType].item1 = this.value;
基本原则是:
data.somePropertyName
// is equivalent to
data["somePropertyName"] // note the quotes
// is equivalent to
requestType = "somePropertyName"
data[requestType]
如果您要更改现有媒体资源的名称,那么:
data.newPropertyName = data.requestType;
delete data.requestType;
根据需要与上述[]
语法结合使用。
顺便说一下,你所处理的是而不是 JSON,它是你通过对象文字创建的对象。 JSON始终是数据的字符串表示(通常用于数据交换目的),其语法看起来像JavaScript的对象文字语法。