JavaScript将数组转换为JSON格式

JavaScript将数组转换为JSON格式,javascript,arrays,ajax,Javascript,Arrays,Ajax,我有一个类似的数组 ["categories", 1, "categories", 2, "categories", 3] 我想把这个数组转换成JSON格式,比如 {"categories":1,"categories":2, "categories":3} 如果你是这个意思 [“分类1”,1,“分类2”,2,“分类3”,3] 每把钥匙都不一样,那么你就可以用它了 var a = ["categories1", 1, "categories2", 2, "categories2", 3],

我有一个类似的数组

["categories", 1, "categories", 2, "categories", 3]
我想把这个数组转换成JSON格式,比如

{"categories":1,"categories":2, "categories":3}
如果你是这个意思

[“分类1”,1,“分类2”,2,“分类3”,3]

每把钥匙都不一样,那么你就可以用它了

var a = ["categories1", 1, "categories2", 2, "categories2", 3],
    b = {}, len = a.length;

for(i=0; i<len; i+=2){
    var key = a[i], val = a[i+1];
    b[key] = val
}

// b should be {"categories1":1,"categories2":2, "categories3":3}
如果你是这个意思

[“分类1”,1,“分类2”,2,“分类3”,3]

每把钥匙都不一样,那么你就可以用它了

var a = ["categories1", 1, "categories2", 2, "categories2", 3],
    b = {}, len = a.length;

for(i=0; i<len; i+=2){
    var key = a[i], val = a[i+1];
    b[key] = val
}

// b should be {"categories1":1,"categories2":2, "categories3":3}

您可以使用以下方法将数组转换为JSON:

var a = ["categories", 1, "categories", 2, "categories", 3];
var json = JSON.stringify(a);
// json will be: "["categories",1,"categories",2,"categories",3]"

问题中的JSON字符串不是数组,而是对象。正如Pranav在他的评论中指出的,这是一种无效的对象表示法,因为对象的属性必须是唯一的。

您可以使用以下方法将数组转换为JSON:

var a = ["categories", 1, "categories", 2, "categories", 3];
var json = JSON.stringify(a);
// json will be: "["categories",1,"categories",2,"categories",3]"

问题中的JSON字符串不是数组,而是对象。正如Pranav在他的评论中指出的那样,它是一种无效的对象符号,因为对象的属性必须是唯一的。

在这种情况下,我们必须通过
{“categories”:[1,2,3]}
。为此,我们必须创建一个值数组并创建一个JSON数据
{“categories”:[1,2,3]}


这解决了通过ajax发布同一字段的多个值(如checkbox)的问题。

在这种情况下,我们必须通过
{“categories”:[1,2,3]}
。为此,我们必须创建一个值数组并创建一个JSON数据
{“categories”:[1,2,3]}


这解决了通过ajax发布同一字段的多个值(如checkbox)的问题。

您不能在一个对象中多次使用相同的属性名
{“categories”:1,“categories”:2,“categories”:3}
{“categories”:3}
感谢您的快速响应。有谁能建议我通过ajax发送多个复选框值的最佳方法吗?您可能的目标是在序列化表单之前使用
serialize()
serializeArray()
谢谢Pranav C Balan和Rajesh Yogeshwar。现在我要通过{“类别”:[1,2,3]}。这是有效的。再次感谢。您不能在对象中多次使用相同的属性名称
{“categories”:1,“categories”:2,“categories”:3}
=>
{“categories”:3}
感谢您的快速响应。有谁能建议我通过ajax发送多个复选框值的最佳方法吗?您可能的目标是在序列化表单之前使用
serialize()
serializeArray()
谢谢Pranav C Balan和Rajesh Yogeshwar。现在我要通过{“类别”:[1,2,3]}。这是有效的。再次感谢你。