从js数组到php通过stringify

时间:2014-11-10 20:15:13

标签: javascript

我正在努力从js中正确格式化一些动态数据(我稍后会将它发送到php)。

我需要以下格式:

{ "r" : "pax" , "c" : 1 , "w" : [ "kiwi" , "melon"] , "g" : [ "cat" , "dog"]}

目前正在使用:

var send = [];
send.push ('r:pax');
send.push ('c:1');


var w = ["kiwi", "melon"];
send.push('"w":'+w);

var g = ["cat", "dog"];
send.push('"g":'+g);

s=JSON.stringify(send);

document.getElementById("demo").innerHTML = s;

返回:

["r:pax","c:1","\"w\":kiwi,melon","\"g\":cat,dog"]

我已经看到stringify是解决方案,但我无法正确传递密钥对。

我该怎么做?

问候。

3 个答案:

答案 0 :(得分:2)

mmm你为什么要开始使用阵列? ...如果我理解得很好,可以使用以下方法轻松解决:

var s = JSON.stringify({
    r: "pax", 
    c: 1,
    w: ["kiwi", "melon"],
    g: ["cat", "dog"]
});

答案 1 :(得分:0)

发送不应该是一个数组,根据您希望最终输出的格式,而是一个对象。如下所示:

var send = {
    r: "pax",
    c: 1,
    w: ["kiwi", "melon"],
    g: ["cat", "dog"]
};

var s = JSON.stringify(send);

答案 2 :(得分:0)

通过做小部件来构建JSON不正确。只需构建一个 NORMAL Javascript数组/对象对,然后将整个事物编码为json。

因为你传入key:value字符串,json的stringify不知道/不关心它已经是json。它只是看到一个字符串并对其应用字符串编码规则。因此,你所看到的所有额外逃脱。

尝试

send = [];
send.push({w:['kiwi', 'melon']})
send.push({g:['cat','dog']});
s = JSON.stringify(send);

代替。