/**
* @author kaizhu_Qin
* @copyright http://blog.youkuaiyun.com/kaizhu_qin
* @version 2013-12-23
* @latest update 2013-12-23
*/
var a=new Array();
a['name']="admin";
a['password']="admin";
var data='userinfo='+a;
$.ajax({
type:"POST",
url:"login.php",
data:data,
success:function(data){
console.log(data); }
});
这样通过url传数组是不成功的。
目前,JSON已经成为最流行的数据交换格式之一,我们可以尝试通过JSON 来完成:
下面我们先来了解下JSON:
从5.2版本开始,PHP原生提供json_encode()和json_decode()函数,前者用于编码,后者用于解码。
一、json_encode()
该函数主要用来将数组和对象,转换为json格式。先看一个数组转换的例子:
$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);
echo json_encode($arr);
//结果为:
//{"a":1,"b":2,"c":3,"d":4,"e":5}
二、json_decode()
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5};
var_dump(json_decode($json));
["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)
}
/***************************************************华丽的分割线****************************************************************/同样的道理,我们反过来应用下:
需要传递的数组:
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)
URL传数组与JSON
本文介绍如何通过URL传递数组,并利用JSON格式实现跨语言的数据交换。重点讲解了PHP中json_encode()与json_decode()函数的应用。
160

被折叠的 条评论
为什么被折叠?



