Javascript 通过ajax传输哈希映射并转换为php数组
我正在为一种微型语言制作一个解释器,并将相关信息存储在哈希映射中。我使用JSON stringify转换这些散列映射,通过ajax将它们发送到服务器端 这是我要发送到服务器端的后JSON字符串化代码:Javascript 通过ajax传输哈希映射并转换为php数组,javascript,php,jquery,json,ajax,Javascript,Php,Jquery,Json,Ajax,我正在为一种微型语言制作一个解释器,并将相关信息存储在哈希映射中。我使用JSON stringify转换这些散列映射,通过ajax将它们发送到服务器端 这是我要发送到服务器端的后JSON字符串化代码: {"kv":["24","23","20"],"interface":"dropdown"},{"ma":["2","3","4"],"interface":"button"} 在服务器端,我如何在不搜索特定字符的情况下,轻松地用的“kv”:[“24”、“23”、“20”]位创建php数组 在通
{"kv":["24","23","20"],"interface":"dropdown"},{"ma":["2","3","4"],"interface":"button"}
在服务器端,我如何在不搜索特定字符的情况下,轻松地用的“kv”:[“24”、“23”、“20”]
位创建php数组
在通过ajax发送之前,json数组的输出为:
{"kv":["24","23","20"],"interface":"dropdown"},{"ma":["2","3","4"],"interface":"button"}
收到后,数据为:
{"kv":["24","23","20"],"interface":"dropdown"},{"ma":["2","3","4"],"interface":"button"}
使用htmlspecialchars\u decode
功能后,它将变为:
{"kv":["24","23","20"],"interface":"dropdown"},{"ma":["2","3","4"],"interface":"button"}
json\u解码
给我空值
ajax代码:
function addValues(jsonArray) {
alert(jsonArray);
$.ajax({
url: 'insertTree.php',
type: 'POST',
data: 'dataToReceive=' + jsonArray,
success: function(data) {
//called when successful
alert(data);
window.location.reload();
},
error: function(e) {
//called when there is an error
console.log(e.message);
}
});
}
php接收代码:
$dataReceived = htmlspecialchars(strip_tags($_POST["dataToReceive"]));
$dataRefined = htmlspecialchars_decode($dataReceived);
$var = json_decode($dataRefined, true);
var_dump($var['kv']); //null
使用
json\u decode
获取值。因为您的基本字符串不是有效的JSON,所以我对其进行了一些修改以使其成为有效的JSON
$string = '{"kv":["24","23","20"],"interface":"dropdown"},{"ma":["2","3","4"],"interface":"button"}';
$data = explode('|', str_replace('},{', '}|{', $string));
foreach($data as $str) {
$var = json_decode($str, true);
if(isset($var['kv'])) var_dump($var['kv']);
}
你要么单独做这两件事,要么把它们放在一个对象中。不确定你为什么要做所有实体的事情,也许有更好的方法在JS中构造它,但你需要在一个对象中使用它们:
$var=json\u decode(“[$datadefined]”,true)代码>我不确定如何准备哈希映射并将其最好地转换为字符串以发送到服务器,当我开始处理哈希映射数组时,它变得特别复杂json解码返回null,我认为json的格式不正确?我会用所有的结果更新这个问题是的,我意识到了。我拿了你编辑过的线,稍微按摩了一下。上面的代码应该可以工作了,分解更正现在让它变得更清晰了,我可以循环遍历所有的数据数组条目并获取值,非常感谢