0

我正在动态构建 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;
    }
}); 

请帮忙 :)

4

1 回答 1

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 的对象文字语法。

于 2012-08-09T11:19:52.330 回答