JavaScript - JSON数据结构的构建 - 如何使用变量值更改密钥名称

时间:2012-08-09 11:13:54

标签: javascript jquery json arrays

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

请帮助:)

1 个答案:

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