通过stringify从js数组到php

from js array to php via stringify

本文关键字:php 数组 js stringify 通过      更新时间:2023-09-26

我很难从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"]

我已经看到字符串是解决方案,但是我无法正确地传递关键帧。

我该怎么做?

谨致问候。

mmm为什么要从数组开始。。。如果我理解得很好,这可以很容易地解决使用:

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

根据您希望最终输出的格式,Send不应该是一个数组,而是一个对象。类似以下内容:

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

您构建的JSON不正确,只是小部分构建。只需构建一个NORMALJavascript数组/对象对,然后将整个内容编码为json。

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

尝试

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

相反。