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

标签 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;
    }
}); 

请帮忙:)

最佳答案

如果您说 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/

相关文章:

javascript - 网站 javascript 未在 iphone 上运行(safari)

javascript - nowjs - 拒绝客户端连接

javascript - 为什么有些 JavaScript 构造函数不是函数?

jquery - 将点击事件绑定(bind)到 jQuery Datatable on() 中的 tr 元素不起作用

javascript - 使用 JQuery 禁用更新面板内的 DropDownList

json - 如何将 Serde 与包含不同对象的 JSON 数组一起使用以获取成功和错误?

Javascript 返回过去 6 个月,然后使用每个月作为变量

javascript - 如果浏览器自动填充字段,则触发 jquery 表单验证

json - 如何高效存储JSON?

ios - 从 Alamofire 响应访问 JSON 值