只要將json數(shù)據(jù)用引號引起來作為字符串傳遞給PHP【通常用ajax進行】就可以用json_decode函數(shù)解碼了。沒錯!就是這樣!但是在構造json字符串的時候一定要仔細,如果你不經(jīng)常構造json字符串,那么不妨用
成都創(chuàng)新互聯(lián)是一家專注于做網(wǎng)站、成都網(wǎng)站制作與策劃設計,水磨溝網(wǎng)站建設哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設十多年,網(wǎng)設計領域的專業(yè)建站公司;建站業(yè)務涵蓋:水磨溝等地區(qū)。水磨溝做網(wǎng)站價格咨詢:18982081108
echo json_encode(array('k'=array("a"='1','2','3')))
這樣的方式,查看你需要構造的目標字符串的json格式。這樣你就可以在js中根據(jù)你想要的結果來構造了!
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);//遞歸調用該函數(shù)
}
elseif
(is_object($data))
{
$data-$k
=
ch_urlencode($v);
}
}
}
return$data;
}
$ret
=
ch_urlencode($data);
$ret
=json_encode($ret);
return
urldecode($ret);
}
這個函數(shù)對中文支持的好一點,把數(shù)組生成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數(shù)據(jù)格式是http請求中的body是一個json格式的字符串,這個用$_POST就獲取不到了。PHP是一種易于學習和使用的服務器端腳本語言。只需要很少的編程知識你就能使用PHP建立一個真正交互的WEB站點。
首先要把數(shù)據(jù)轉換成json格式,再通過curl方法調用接口并傳參數(shù)
代碼如下:
$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方法傳送參數(shù)
curl_setopt($ch,?CURLOPT_RETURNTRANSFER,?1);
$response?=?curl_exec($ch);
curl_close($ch);
之后就返回數(shù)據(jù)即可。