概述
創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),霸州企業(yè)網(wǎng)站建設(shè),霸州品牌網(wǎng)站建設(shè),網(wǎng)站定制,霸州網(wǎng)站建設(shè)報價,網(wǎng)絡營銷,網(wǎng)絡優(yōu)化,霸州網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。
不對。
返回json用的json_encode()方法沒錯,但是需要在頭部聲明格式。
代碼解析
php返回需要用json_encode()方法來將需要轉(zhuǎn)換的字符串轉(zhuǎn)換成json編碼格式(注意:僅僅更換文件內(nèi)容,而返回的文件依然為文本格式且編碼為gtk)
所以,這里需要在php頭部聲明
header('Content-Type:text/json;charset=utf-8');
拓展內(nèi)容
json
JSON(JavaScript?Object Notation, JS 對象簡譜) 是一種輕量級的數(shù)據(jù)交換格式。它基于?ECMAScript?(歐洲計算機協(xié)會制定的js規(guī)范)的一個子集,采用完全獨立于編程語言的文本格式來存儲和表示數(shù)據(jù)。簡潔和清晰的層次結(jié)構(gòu)使得 JSON 成為理想的數(shù)據(jù)交換語言。 易于人閱讀和編寫,同時也易于機器解析和生成,并有效地提升網(wǎng)絡傳輸效率。
json通常被作為配置文件,常見還有.ini
在PHP中解析JSON主要用到json_encode和json_decode兩個PHP
JSON函數(shù),比PHP解析XML方便很多,下面詳細介紹下PHP
JSON的使用。
JSON基礎(chǔ)介紹
JSON(JavaScript
Object
Notation)
是一種輕量級的數(shù)據(jù)交換格式。
JSON主要有兩種結(jié)構(gòu):
“名稱/值”對的集合,在PHP中可以理解為關(guān)聯(lián)數(shù)組
(associative
array)。
值的有序列表(An
ordered
list
of
values)。在PHP中可以理解為普通數(shù)組(array)。
對象是一個無序的“‘名稱/值'對”集合。一個對象以“{”(左括號)開始,“}”(右括號)結(jié)束。每個“名稱”后跟一個“:”(冒號);“‘名稱/值'
對”之間使用“,”(逗號)分隔。
數(shù)組是值(value)的有序集合。一個數(shù)組以“[”(左中括號)開始,“]”(右中括號)結(jié)束。值之間使用“,”(逗號)分隔。值(value)可以是雙引號括起來的字符串(string)、數(shù)值(number)、true、false、
null、對象(object)或者數(shù)組(array)。這些結(jié)構(gòu)可以嵌套。
我目前對JSON的理解更偏向于數(shù)組,類似于PHP中的關(guān)聯(lián)數(shù)組,你可以將PHP數(shù)組轉(zhuǎn)換為JSON格式。
更多JSON的介紹請參考JSON官網(wǎng)和IBM關(guān)于JSON的介紹
PHP
JSON解析實例
PHP5.2開始已經(jīng)將JSON作為PHP擴展的一部分,所以并不需要另外安裝JSON。另外為了保證下面的PHP
JSON實例不出現(xiàn)中文亂碼,請保證你的編碼格式為UTF8。
JSON是Javascript的一部分,首先我們看下Javascript中如何定義JSON
復制代碼
代碼如下:
var
json_obj
=
{'WebName':'PHP網(wǎng)站開發(fā)教程網(wǎng)'};
alert(json_obj.WebName);
var
json_arr
=[{'WebName':'PHP網(wǎng)站開發(fā)教程網(wǎng)','WebSite':''},{'ArtTitle':'PHP
JSON實例講解'}]
alert(json_arr[1].ArtTitle);
var
php_json
=
[['PHP網(wǎng)站開發(fā)教程網(wǎng)',''],['文章標題','PHP
JSON實例講解']];
alert(php_json[1][0]);
在這段JSON實例代碼中我構(gòu)建了所有的JSON形式,
第1行,定義了JSON以對象形式存在
第4行,定義了JSON以數(shù)組形式存在,嵌套了JSON對象,所以有點類似于PHP的關(guān)聯(lián)數(shù)組,其實仍然是對象。
第7行,定了JSON以普通數(shù)組形式存在。
注意:由于Javascript是區(qū)分大小寫的,所以訪問JSON關(guān)聯(lián)數(shù)組對象時注意key的大小寫問題。
PHP與JSON格式數(shù)據(jù)交互時,第一步需要將PHP數(shù)組轉(zhuǎn)換為JSON格式的數(shù)據(jù),可使用PHP5自帶的json_encode函數(shù),當PHP解析傳遞過來的JSON格式數(shù)據(jù)時需要使用json_decode函數(shù)進行解析轉(zhuǎn)換為PHP數(shù)組,PHP轉(zhuǎn)換并解析JSON數(shù)據(jù)的實例代碼如下
復制代碼
代碼如下:
?php
$json_arr
=
array('WebName'='PHP網(wǎng)站開發(fā)教程網(wǎng)','WebSite'='');
$php_json
=
json_encode($json_arr);
echo
$php_json;
$php_json
=
json_decode($php_json);
print_r($php_json);
?
說明:這里通過PHP定義了關(guān)聯(lián)數(shù)組,然后通過json_encode轉(zhuǎn)換為JSON格式的數(shù)據(jù),通過echo語句可以看到轉(zhuǎn)換后的JSON對象,通過PHP
JSON解析函數(shù)json_decode可以將JSON格式的數(shù)據(jù)解析為PHP的關(guān)聯(lián)數(shù)組。如果編碼不正確,JSON中文會出現(xiàn)亂碼。如果你使用Editplus調(diào)試PHP,請注意保存文件時編碼將ANSI改為UTF8。
最后我們來看下完整的PHP
JSON交互實例
復制代碼
代碼如下:
?php
$json_arr
=
array('WebName'='PHP網(wǎng)站開發(fā)教程網(wǎng)','WebSite'='');
$php_json
=
json_encode($json_arr);
?
script
type="text/javascript"
var
php_json
=
?=$php_json?;
/script
script
type="text/javascript"
function
php_json_dis(php_json)
{
alert(php_json.WebName);
alert(php_json.WebSite);
}
php_json_dis(php_json);
/script
至此,PHP通過json_encode和json_decode函數(shù)對JSON格式數(shù)據(jù)進行轉(zhuǎn)換和解析的實例就介紹完了。
// 生成一個PHP數(shù)組
$data = array();
$data['name'] = 'admin';
$data['pwd'] = '123456';
// 把PHP數(shù)組轉(zhuǎn)成JSON字符串
$json_string = json_encode($data);
// 寫入文件
file_put_contents('user.json', $json_string);
// 從文件中讀取數(shù)據(jù)到PHP變量
$json_string = file_get_contents('user.json');
// 把JSON字符串轉(zhuǎn)成PHP數(shù)組
$data = json_decode($json_string, true);
// 顯示出來看看
var_dump($data)
可以用$obj=key 的方式直接讀取 ?也可以先轉(zhuǎn)換為數(shù)組 ?用遍歷數(shù)組的方法讀取
?php
$json?=?'{"a":100,"b":200,"c":300,"d":400,"e":500}';
//首先將json字符串轉(zhuǎn)換成關(guān)聯(lián)數(shù)組
$arr=json_decode($json,?true);?
//然后循環(huán)讀取數(shù)據(jù)
foreach($arr?as?$item){
echo?$item;
echo?"br/";
}
?
運行結(jié)果:
100
200
300
400
500
$dataJson = "數(shù)據(jù)"; // 提供數(shù)據(jù)
$data = json_decode($dataJson); // 數(shù)據(jù)按json解析成php數(shù)組
$minuteArr = $data['minute']; // 從數(shù)組中獲取minute數(shù)據(jù)
此時$minuteArr中存放的就是你要的數(shù)據(jù),但數(shù)組下標(鍵)是從0開始,如需要從1開始,則遍歷$minuteArr修改下標(鍵) 或 使用php數(shù)組函數(shù)進行快速重構(gòu)。
注:你這問題是還沒入門的初學者問的問題,建議還是多看看書!...
文章名稱:php數(shù)據(jù)json php數(shù)據(jù)庫
文章鏈接:http://www.chinadenli.net/article18/docdjgp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、定制開發(fā)、用戶體驗、網(wǎng)站設(shè)計、、網(wǎng)站導航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)