本文實例講述了PHP生成及獲取JSON文件的方法。分享給大家供大家參考,具體如下:
網(wǎng)站建設哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、成都微信小程序、集團企業(yè)網(wǎng)站建設等服務項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了寧化免費建站歡迎大家使用!
首先定義一個數(shù)組,然后遍歷數(shù)據(jù)表,把相應的數(shù)據(jù)放到數(shù)組中,最后通過json_encode()轉化數(shù)組
json_encode()
函數(shù)的功能是將數(shù)值轉換成
JSON
數(shù)據(jù)存儲格式。
putjson.php:
?php
//
生成一個PHP數(shù)組
$data
=
array();
$data[0]
=
array('1','吳者然','onestopweb.cn');
$data[1]
=
array('2','何開','iteye.com');
//
把PHP數(shù)組轉成JSON字符串
$json_string
=
json_encode($data);
//
寫入文件
file_put_contents('test.json',
$json_string);
?
有同名的
JSON
文件則覆蓋,沒有則創(chuàng)建。
生成或覆蓋的
JSON
如下:
復制代碼
代碼如下:[["1","\u811A\u672C\u4E4B\u5BB6",""],["2","\u7F16\u7A0B\u5F00\u53D1","jb51.net"]]
然后,把
JSON
文件中的數(shù)據(jù)讀取到PHP變量中。
getjson.php:
?php
//
從文件中讀取數(shù)據(jù)到PHP變量
$json_string
=
file_get_contents('test.json');
//
把JSON字符串轉成PHP數(shù)組
$data
=
json_decode($json_string,
true);
//
顯示出來看看
var_dump($data);
echo
'brbr';
print_r($data);
echo
'brbr';
echo
'編號:'.$data[0][0].'
姓名:'.$data[0][1].'
網(wǎng)址:'.$data[0][2];
echo
'br';
echo
'編號:'.$data[1][0].'
姓名:'.$data[1][1].'
網(wǎng)址:'.$data[1][2];
?
效果圖:
PS:這里再為大家推薦幾款比較實用的json在線工具供大家參考使用:
在線JSON代碼檢驗、檢驗、美化、格式化工具:
JSON在線格式化工具:
在線XML/JSON互相轉換工具:
json代碼在線格式化/美化/壓縮/編輯/轉換工具:
C語言風格/HTML/CSS/json代碼格式化美化工具:
更多關于PHP相關內(nèi)容感興趣的讀者可查看本站專題:《PHP中json格式數(shù)據(jù)操作技巧匯總》、《PHP針對XML文件操作技巧總結》、《PHP基本語法入門教程》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對大家PHP程序設計有所幫助。
首先你需要使用對方約定方式獲取,然后考慮是否使用緩存,最后獲取到數(shù)據(jù)后使用json_decode函數(shù)解析成數(shù)組格式,接下來就是自己的邏輯代碼了。
PHP接收JSON格式的數(shù)據(jù)
在API服務中,目前流行采用json形式來交互。
給前端調(diào)用的接口輸出Json數(shù)據(jù),這個比較簡單,只需要組織好數(shù)據(jù),用json_encode($array) 轉化一下,前端就得到json格式的數(shù)據(jù)。
接收前端提交的json數(shù)據(jù)稍微復雜一點,原因是:PHP默認識別的數(shù)據(jù)類型是application/x-標準的數(shù)據(jù)類型。因此,對型如text/xml 或者 soap 或者 application/octet-stream 和application/json格式之類的內(nèi)容無法解析,如果用$_POST數(shù)組來接收就會失??!
此時可以使用$GLOBALS['HTTP_RAW_POST_DATA'] 或 file_get_contents('php://input') 來獲取提交的數(shù)據(jù)
查看手冊,可以發(fā)現(xiàn)$GLOBALS['HTTP_RAW_POST_DATA'] 和 $_POST的區(qū)別:
$_POST:通過 HTTP POST 方法傳遞的變量組成的數(shù)組,是自動全局變量。
$GLOBALS['HTTP_RAW_POST_DATA'] :總是產(chǎn)生 $HTTP_RAW_POST_DATA 變量包含有原始的 POST 數(shù)據(jù)。此變量僅在碰到未識別 MIME 類型的數(shù)據(jù)時產(chǎn)生。$HTTP_RAW_POST_DATA 對于 enctype="multipart/form-data" 表單數(shù)據(jù)不可用。也就是說基本上$GLOBALS['HTTP_RAW_POST_DATA'] 和 $_POST是一樣的。但是如果post過來的數(shù)據(jù)不是PHP能夠識別的,你可以用 $GLOBALS['HTTP_RAW_POST_DATA']來接收,比如 text/xml 或者 soap 等等。
補充說明:PHP默認識別的數(shù)據(jù)類型是application/x-標準的數(shù)據(jù)類型。
如果是PHP的話這樣做:
$json?=?"{?"code":0,?"subcode":0,?"message":"",?"default":0,?"data":?{?"app_848"?:?{?"code":0,?"subcode":0,?"message"?:?"",?"default"?:?0,?"data":?{?"Ishost":0,?"items":[?],?"modvisitcount":[?{"mod":0,?"todaycount":76,?"totalcount":204935},?{"mod":8,?"twlogincount":0,?"todaycount":0,?"totalcount":2}?],?"twlogincount":16,?"lastgettime":1495949098?}?}?}?}?";
$jsonToArray?=?json_decode($json,true);
$modvisitcount?=?jsonToArray["data"]["data"]["modvisitcount"];
$toDayCount?=?$modvisitcount?[0]["todaycount"];
$toTalCount?=?$modvisitcount?[0]["totalcount"];
//如果你是需要累積的話
$toDayCount?=?$toTalCount?=?0;
foreach($modvisitcount?as?$arr){
$toDayCount?+=?$arr["todaycount"];
$toTalCount?+=?$arr["totalcount"];
}
使用thinkphp框架開發(fā),不知道如何返回JSON字符串,ajax無法調(diào)用 有三種方式可以返回
1、若是數(shù)據(jù)庫實體,可以使用toJson()方法
$user = User::get(1); echo $user-toJson();
2、若非數(shù)據(jù)庫實體,可以使用json view方法,thinkphp除了實現(xiàn)response對象,還實現(xiàn)了jsonResponse若非數(shù)
$data = [??? 'result'='success',??? 'msg'='操作成功!' ]; //class Json extends Response
return json($data);
3、若非數(shù)據(jù)庫實體,可以使用json_encode()方法:
$data = [??? 'result'='success',??? 'msg'='操作成功!' ];
return json_encode($data);
thinkphp5 ajax如何返回json
// 生成一個PHP數(shù)組
$data = array();
$data['name'] = 'admin';
$data['pwd'] = '123456';
// 把PHP數(shù)組轉成JSON字符串
$json_string = json_encode($data);
// 寫入文件
file_put_contents('user.json', $json_string);
// 從文件中讀取數(shù)據(jù)到PHP變量
$json_string = file_get_contents('user.json');
// 把JSON字符串轉成PHP數(shù)組
$data = json_decode($json_string, true);
// 顯示出來看看
var_dump($data)