我正在动态构建 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;
}
});
请帮忙:)
最佳答案
如果您说 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 的对象字面量语法。
关于JavaScript - JSON数据结构的构建 - 如何使用变量值更改键名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11882166/