只要将json数据用引号引起来作为字符串传递给PHP【通常用ajax进行】就可以用json_decode函数解码了。没错!就是这样!但是在构造json字符串的时候一定要仔细,如果你不经常构造json字符串,那么不妨用
成都创新互联是一家专注于做网站、成都网站制作与策划设计,水磨沟网站建设哪家好?成都创新互联做网站,专注于网站建设十多年,网设计领域的专业建站公司;建站业务涵盖:水磨沟等地区。水磨沟做网站价格咨询:18982081108
echo json_encode(array('k'=array("a"='1','2','3')))
这样的方式,查看你需要构造的目标字符串的json格式。这样你就可以在js中根据你想要的结果来构造了!
function
ch_json_encode($data)
{
function
ch_urlencode($data)
{
if
(is_array($data)
||
is_object($data))
{
foreach
($data
as
$k
=
$v)
{
if
(is_scalar($v))
{
if
(is_array($data))
{
$data[$k]
=
urlencode($v);
}
elseif
(is_object($data))
{
$data-$k
=urlencode($v);
}
}
elseif
(is_array($data))
{
$data[$k]
=
ch_urlencode($v);//递归调用该函数
}
elseif
(is_object($data))
{
$data-$k
=
ch_urlencode($v);
}
}
}
return$data;
}
$ret
=
ch_urlencode($data);
$ret
=json_encode($ret);
return
urldecode($ret);
}
这个函数对中文支持的好一点,把数组生成json格式,再echo出来
代码都基于jquery
jsonp 可以跨域 例如:
$.ajax({
url:'example.php',
type:'GET',
dataType:'jsonp',
jsonp:'callback',
success:function(data){
/*比如example.php是这样?php
$callback=$_REQUEST['callback'];
echo $callback.'('.json_encode(array('id'=1)).')';?
这里的data 就是 {"id":1}
*/
}
});
不跨域 ajax就可以 例如:
$.ajax({
url:'example.php',
type:'GET',
dataType:'json',
success:function(data){
//这个data就是返回的json 即example.php 输出的 json
比如example.php是这样?php echo json_encode(array('id'=1));?
返回的json 就是 {"id":1}
}
});
变量带进去解析,这就传进去了。示例如下:
$test=123;
POSTFILED='{
......
"message":"'.$test.'"
}';
不能。所谓的json数据格式是http请求中的body是一个json格式的字符串,这个用$_POST就获取不到了。PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的WEB站点。
首先要把数据转换成json格式,再通过curl方法调用接口并传参数
代码如下:
$keyword = urlencode($_POST['keyword']);
$parameters = json_encode(array('keyWord'=$keyword,'areaCode'='*'));
$post_data['appToken'] = "323ds7674354fds32fdsda60173";//随便写的
$post_data['parameters'] = $parameters;
$url = '';//随便写的
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);//用post方法传送参数
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($ch);
curl_close($ch);
之后就返回数据即可。