『壹』 如何用php調用外部介面json數據
file_get_contents或者curl都可以
接收到數據後,可以使用php函數json_decode()把json轉換成數組或對象格式
『貳』 php怎麼寫服務端獲取 客戶端發來的json
如果使用的是HTTP協議的GET方法,數據保存在$_GET數組中.
如果使用的是HTTP協議的POST方法,數據通常保存在$_POST數組中.
注:如果post方法沒有指出數據類型,提交的數據可以通過$HTTP_RAW_POST_DATA獲取.
找到數據後可以通過json_decode函數處理下即可轉換成數組或對象.
『叄』 PHP使用POST傳遞json數據的接收與處理問題
前端傳給伺服器的只是json 格式的字元串,使用json_decode,
mixed json_decode ( string $json [, bool $assoc ] )
var_mp(json_decode($json));
var_mp(json_decode($json, true));
如果不帶參數,則返回為對象
帶上true時,返回數組
foreach($ARR as $k=>$v){
echo 'key='.$k.';value='.$v;
}
單獨處理每個key 和對應的value就好
『肆』 php如何讀取json的內容
如果json是以對象的方式存儲於變數$json中,則這樣引用: $json->openid
如果json是以關聯數組的方式存儲於變數$json中,則這樣引用: $json['openid']
如果json是以字元串的方式存儲於變數$json中,則需要先轉換一下:
$a=json_decode($json);
print_r($a->openid);
或者
$a=json_decode($json,true);
print_r($a['openid']);
『伍』 php如何接收js傳來的json
感覺樓主對json_decode這個函數有點理解錯誤,這個函數時將一個json格式的字元串轉化成php數組用的,前提是其中的參數必須為字元串
那我們回頭看下樓主的代碼,經過eval以後jsondata變成了一個數組形變數,結構似乎有點奇怪,有5個元素的一個數組,但是每個元素又是一個json對象,而每個json對象又只有一個變數。換句話說如果想獲取createvote這個值,那麼就需要調用jsondata[0].doing
而且,post發送的數據要求是json對象,而樓主這個根本就是不是json...能否發送都是個問題...
樓上那個說$_POST獲取數據的,我試了一下,似乎不行。$_POST['doing']壓根就是個未定義的值
如果要json_decode那就沒必要先eval一下,感覺會弄巧成拙
給樓主一個代碼
js:
vardata='{"doing":"createvote","type":"type","num":"num","votetheme":"votetheme","creater":"loginname"}';
$.post(url,{data:data},function(res){alert(res)});
注意data變數,『與「的位置,不要寫反,反了的話json_decode是不能編譯的
php:
<?php
if(isset($_POST["data"]))var_mp(json_decode($_POST["data"],true));
?>
根據返回的格式很明顯就是一個php的array格式
post的參數必須是name->value的格式,如果單純post一個變數,那麼就相當於只有value,沒有name,所以我這里將post的傳參值寫為{data:data}第一個data是name,第二個data是之前定義的字元串
『陸』 php 接收JS過來的JSON數據
用php處理json數據,需要用json_decode函數轉成json對象,再取其屬性的值.
完整的php程序如下
『柒』 php如何返回json對象呢
返回json用的json_encode()方法沒錯,但是需要在頭部聲明格式。
代碼解析
php返回需要用json_encode()方法來將需要轉換的字元串轉換成json編碼格式(注意:僅僅更換文件內容,而返回的文件依然為文本格式且編碼為gtk)
所以,這里需要在php頭部聲明
header('Content-Type:text/json;charset=utf-8');
拓展內容
json
JSON(javaScript Object Notation, JS 對象簡譜) 是一種輕量級的數據交換格式。它基於 ECMAScript (歐洲計算機協會制定的js規范)的一個子集,採用完全獨立於編程語言的文本格式來存儲和表示數據。簡潔和清晰的層次結構使得 JSON 成為理想的數據交換語言。 易於人閱讀和編寫,同時也易於機器解析和生成,並有效地提升網路傳輸效率。
json通常被作為配置文件,常見還有.ini
0
『捌』 php如何接收js傳來的json對象
你無法傳json對象到服務端交互的,要傳的只是一個字元串(Json),是個字元串!
你發的代碼里是json的解析,沒有多大意義,你在php頁面這樣調試
var_mp($_REQUEST);//輸出所有數據,如果存在的話,你會看到那個參數是啥
另外,json格式,主要方便javascript解析的,而不是php擅長的內容,多數情況下,是PHP返回json數據給js.
php的數組操作函數有主要的兩個json_encode()與json_decode();
從你的代碼中,我不確定你用何種方式通信,ajax?
我看你用到了jQuery,那裡面有個ajax,方式類似這樣的:
$.ajax({
type:"post",//method;canbegetwithpostorrequest
url:"/mySever.php",//phpurl
error:function(){alert('Error');},
data:{
data1:name,
data2:age,
},
datatype:"json",//jsonback
timeout:5000,
success:function(msg)
{
//eval(msg);//parasehere
}
});
returnfalse;
}
『玖』 php 如何將獲取json中的參數的值
很簡單。
因為Json實際上就是一個字元串,因此語言提供了將其轉換成數組,對象的能力。
使用json_decode就可以將字元串轉一個關聯數組。
比如$data = json_decode("{'success':1,xxxxxxxx}");
echo $data[tender_id];就OK了
『拾』 php 怎麼接收前端傳來的json數據
<?php
header("Content-type:text/html;charset=utf-8");
if($_POST){
$d = $_POST['data'];//這里獲取的直接就是數組了,不需要用到json_decode
echo $d['doing'];
//print_r($d);
exit;
}
?>
<script src="js/jquery-1.7.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#xx").click(function(){
var url = "test.php";
var str ="{'doing':'createvote','type':'type','num':'num','votetheme':'votetheme','creater':'loginname'}";//json格式字元串
var data = eval('('+str+')');//轉換成數組對象,不加這步,那麼PHP獲取的是字元串。
$.post(url, {'data': data}, function(res) {//注意jquery的$.post的第2個參數必須是鍵值對形式
alert(res);
});
});
});
</script>
<input id="xx" type="button" value="點擊">