亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > PHP > 正文

PHP中JSON的應用技巧

2024-05-04 23:39:30
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了關于JSON以及JSON在PHP中的應用技巧,需要的朋友可以過來參考下,希望對大家有所幫助。

互聯網的今天,AJAX已經不是什么陌生的詞匯了。說起AJAX,可能會立即想起因RSS而興起的XML。不可否認,XML是很不錯的數據存儲方式,但是其靈活恰恰造成了其解析的困難。當然,這里所指的困難,是相對于本文的主角--JSON而言。

JSON為何物?我就不重復概念了。通俗的說,它是一種數據的存儲格式,就像PHP序列化后的字符串一樣。它是一種數據描述。比如我們將一個數組序列化后存放,就可以很容易的反序列化后應用。JSON也是如此,只不過他搭建的是客戶端Javascript和服務端PHP的交互橋梁。我們用PHP生成JSON后的字符串,然后把這個字符串傳給前臺Javascript,Javascirpt就可以很容易的將其反JSON然后應用。說通俗點,它真的很像數組。

言歸正傳,如何使用JSON。PHP5.2開始內置了JSON的支持。當然,如果低于這個版本的話,那么市面上有很多PHP版本的實現,隨便下一個用就OK啦?,F在主要是說說PHP內置支持的JSON。很簡單,兩個函數:json_encode和json_decode(跟序列化很像啦)。一個編碼,一個解碼。先看看編碼的使用:

 

 
  1. <?php  
  2. $arr = array(  
  3. 'name' => '陳毅鑫',  
  4. 'nick' => '深空',  
  5. 'contact' => array(  
  6. 'email' => 'shenkong at qq dot com',  
  7. 'website' => 'http://www.49028c.com',  
  8. )  
  9. );  
  10. $json_string = json_encode($arr);  
  11. echo $json_string;  
  12. ?>  

很簡單的將一個數組JSON了。需要指出的是,在非UTF-8編碼下,中文字符將不可被encode,結果會出來空值,所以,如果你使用gb2312編寫PHP代碼,那么就需要將包含中文的內容使用iconv或者mb轉為UTF-8再進行json_encode,上面輸出結果如下:

 

 
  1. {"name":"/u9648/u6bc5/u946b","nick":"/u6df1/u7a7a",  
  2. "contact":{"email":"shenkong at qq dot com","website":"http:////www.49028c.com"}}  

我都說了和序列化很像,你還不信。編碼后就要解碼,PHP提供了相應的函數json_decode,json_decode執行后,將會得到一個對象,操作如下:

 

 
  1. <?php  
  2. $arr = array(  
  3. 'name' => '陳毅鑫',  
  4. 'nick' => '深空',  
  5. 'contact' => array(  
  6. 'email' => 'shenkong at qq dot com',  
  7. 'website' => 'http://www.49028c.com',  
  8. )  
  9. );  
  10. $json_string = json_encode($arr);  
  11. $obj = json_decode($json_string);  
  12. print_r($obj);  
  13. ?>  

訪問對象內的屬性會吧?$obj->name,這樣子的,當然,也可以把它轉位數組,方便調用啦:

 

 
  1. $json_string = json_encode($arr);  
  2. $obj = json_decode($json_string);  
  3. $arr = array($obj);  
  4. print_r($arr);  

PHP轉來轉去的用途不是特別大,除了緩存生成,感覺還不如直接存數組呢,不過,當你和前臺交互的時候,它的作用就出來咯,下面看看我怎么用Javascript來使用這段字符:

 

 
  1. <script type="text/javascript">  
  2. var arr = {"name":"/u9648/u6bc5/u946b","nick":"/u6df1/u7a7a",  
  3. "contact":{"email":"shenkong at qq dot com","website":"http:////www.49028c.com"}};  
  4. alert(arr.name)  
  5. </script>  

上面中,直接將這個字符串賦給一個變量,它就變成一個Javascript數組了(專業化術語應該不叫數組,不過由于PHP的習慣問題,我就一直叫數組好了,方便理解)。這樣,可以很方便的對arr進行遍歷或者任意做你想做的事情了。寫到這里,好像都沒提到AJAX哦?是哦,聯想一下,如果服務端返回的responseText用JSON過的字符串代替XML的話,前臺Javascript處理起來是不是很方便呢?狗皮膏藥就是這樣用的。

其實寫到這里,除了數據的存儲格式不太一樣外,JSON和XML也沒什么太大區別哦,不過下面我說的一點。雖然和XML沒多大關系,不過,可以說明JSON更大范圍的應用,那就是,跨域的數據調用。由于安全性問題,AJAX不支持跨域調用,這樣要調用不同域名下的數據,很麻煩哦,雖然有解決方案(stone在他的講座上提到過了代理啊什么的雖然聽不懂但是知道能解決)。我寫兩個文件,足以展示跨域調用了。

主調文件index.html

 

 
  1. <script type="text/javascript">  
  2. function getProfile(str) {  
  3. var arr = str;  
  4. document.getElementById('nick').innerHTML = arr.nick;  
  5. }  
  6. </script>  
  7. <body><div id="nick"></div></body>  
  8. <script type="text/javascript" src="http://www.openphp.cn/demo/profile.php"></script>  

被調文件profile.php

 

 
  1. <?php  
  2. $arr = array(  
  3. 'name' => '陳毅鑫',  
  4. 'nick' => '深空',  
  5. 'contact' => array(  
  6. 'email' => 'shenkong at qq dot com',  
  7. 'website' => 'http://www.49028c.com',  
  8. )  
  9. );  
  10. $json_string = json_encode($arr);  
  11. echo "getProfile($json_string)";  
  12. ?>  

很顯然,當index.html調用profile.php時,JSON字符串生成,并作為參數傳入getProfile,然后將昵稱插入到div中,這樣一次跨域數據交互就完成了,是不是特別簡單。

既然JSON這么簡單易用而且好用,還等什么呢?希望這篇文章對大家的學習有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品久久久久久久久久东京| 亚洲国产欧美在线成人app| 国产精品男女猛烈高潮激情| zzijzzij亚洲日本成熟少妇| 欧美小视频在线| 欧美黑人巨大精品一区二区| 欧美国产第一页| 精品久久久香蕉免费精品视频| 久久视频在线观看免费| 欧美中文字幕在线| 26uuu亚洲伊人春色| 国产视频精品在线| 亚洲欧美日韩在线高清直播| 国产精品福利无圣光在线一区| 国产精品久久久久久久久男| 日韩激情av在线免费观看| 国产日韩一区在线| 亚洲网站在线播放| 亚洲精品99999| 久久久久久久久久久人体| 欧美性猛交xxxx偷拍洗澡| 最近2019中文字幕mv免费看| 亚洲欧美日韩一区二区在线| 国产成人免费91av在线| 欧美激情在线播放| 久久视频在线直播| 久久精品人人做人人爽| 久久人人爽人人爽人人片av高清| 亚洲成人网在线| 欧美中文字幕视频在线观看| 中文字幕日韩欧美在线视频| 国产成人av网址| 一区二区在线视频| 亚洲国产毛片完整版| 欧美日韩亚洲精品内裤| 亚洲网站在线观看| 亚洲淫片在线视频| 日韩成人在线免费观看| 欧美日韩性视频在线| 亚洲国产91色在线| 久久久国产精品视频| 亚洲欧洲成视频免费观看| 欧美黄色片在线观看| 久久精品91久久久久久再现| 亚洲国产欧美久久| 欧美福利小视频| 欧美丰满少妇xxxxx做受| 97婷婷涩涩精品一区| 日韩在线免费高清视频| 日韩欧美国产高清91| 亚洲一区二区三区视频播放| 欧美黑人xxxx| 国产99久久精品一区二区| 国产精品亚发布| 国产精品99久久久久久www| 中文字幕亚洲综合久久筱田步美| 成人在线一区二区| 欧美激情在线狂野欧美精品| 欧美香蕉大胸在线视频观看| 国产色婷婷国产综合在线理论片a| 琪琪亚洲精品午夜在线| 91久久综合亚洲鲁鲁五月天| 久久亚洲一区二区三区四区五区高| 欧美精品福利在线| 久久在线观看视频| 欧美日韩精品国产| 在线观看久久久久久| 欧洲亚洲免费视频| 欧美性猛交xxxxx水多| 日韩精品在线视频美女| 成人免费xxxxx在线观看| 高潮白浆女日韩av免费看| 最近2019中文字幕mv免费看| 欧美成人免费播放| 欧美一级视频免费在线观看| 亚洲天堂开心观看| 国产精品日韩精品| 米奇精品一区二区三区在线观看| 久久黄色av网站| 久久影院在线观看| 亚洲精品美女视频| 久久久久久尹人网香蕉| 日韩av一区二区在线观看| 伊人精品在线观看| 久久激情视频久久| 国内外成人免费激情在线视频| 国内精品视频一区| 一区二区欧美日韩视频| 欧美在线视频观看免费网站| 国产不卡视频在线| 久热99视频在线观看| 成人免费福利视频| 亚洲美女av黄| 欧美成aaa人片免费看| 欧美另类老女人| 国产精品揄拍一区二区| 国产成人一区三区| 日韩av快播网址| 亚洲国产天堂网精品网站| 欧美老女人性视频| 色视频www在线播放国产成人| 中文字幕免费精品一区| 亚洲跨种族黑人xxx| 亚洲a区在线视频| 精品国产成人av| 亚洲高清不卡av| 北条麻妃在线一区二区| 亚洲人高潮女人毛茸茸| 九九热99久久久国产盗摄| 国产欧美精品一区二区| 97视频在线观看播放| 成人免费视频a| 久久91超碰青草是什么| 8050国产精品久久久久久| 成人性生交大片免费看视频直播| 日韩av电影手机在线观看| 久久精品国产欧美激情| 欲色天天网综合久久| 日本亚洲欧洲色α| 欧美一级bbbbb性bbbb喷潮片| 狠狠做深爱婷婷久久综合一区| 97热精品视频官网| 国产suv精品一区二区三区88区| 九九久久综合网站| 久久夜色精品国产欧美乱| 欧美激情亚洲激情| 欧美日韩中文字幕在线| 中文字幕日韩有码| 青青草原一区二区| 亚洲变态欧美另类捆绑| 日本高清视频一区| 日韩最新av在线| 日本久久久久亚洲中字幕| 久久影视电视剧凤归四时歌| 国产精品视频999| 毛片精品免费在线观看| 亚洲视频一区二区三区| 久久伊人色综合| 色综合天天综合网国产成人网| 欧美猛少妇色xxxxx| 日韩精品免费在线视频观看| 欧美理论片在线观看| 97香蕉久久夜色精品国产| 成人激情视频在线观看| 日韩美女主播视频| 亚洲欧美国产精品va在线观看| 亚洲网站在线播放| 中文字幕日韩在线视频| 日韩精品在线免费播放| 亚洲午夜久久久久久久| 国产精品视频内| 久久夜色精品国产| 国产大片精品免费永久看nba| 国产不卡视频在线| 777午夜精品福利在线观看| 欧美丰满少妇xxxxx做受| 国产精品美女无圣光视频| 精品国产一区av| 欧美制服第一页| 久久精品国产成人精品| 亚洲最大的网站| 国产成人精品av| 亚洲欧美日韩一区二区三区在线| 亚洲人成欧美中文字幕|