object(stdClass)#1 (5) {
["a"] => int(1)
["b"] => int(2)
["c"] => int(3)
["d"] => int(4)
["e"] => int(5)
}
如果想要强制生成PHP关联数组,json_decode()需要加一个参数true:
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
var_dump(json_decode($json,true));
结果就生成了一个关联数组:
array(5) {
["a"] => int(1)
["b"] => int(2)
["c"] => int(3)
["d"] => int(4)
["e"] => int(5)
} /***************************************************华丽的分割线****************************************************************/
同样的道理,我们反过来应用下:
我们在js里将需要传递的数组进行处理,写为下面的形式:
需要传递的数组:
var a = new Array();
a['name']="333";
a['password']="54dfdgf";
//JSON数据形式:
var a='{"username":admin,"password":admin}';
var data='userinfo='+a;
$.ajax({
type:"POST",
url:"login.php",
data:data,
success:function(data){
console.log(data);
}
});
在login.php 文件:
$json=_POST['userinfo'];
print_r((json_decode($json,true)));
//结果:Array ([username] => admin [password] => admin)
这样我们使用Ajax通过url传递的数组就可以在php获得了。
当然,如果我们使用ajax的方式,传递form表单的数据,serialize() 能更加快速地序列化表单值。
serialize() 方法通过序列化表单值,创建 URL 编码文本字符串。
关于serialize() 的具体用法,大家可以参考这里:《》