php使用json_encode對(duì)變量json編碼
在 ajax 橫行的今天,json 順理成章地成為了前后端交互一個(gè)極其重要的工具。對(duì)于 PHP 來說,通常使用 json_encode 方法將一個(gè) PHP 組數(shù),轉(zhuǎn)換成前端可以解析的 json 字符串,這也是 PHP 手冊(cè)上描述的內(nèi)容,但事實(shí)是這樣的嗎?看看下面這段代碼:
$a = array( 'Jack' , 'Sam' , 'Tom' );
echo json_encode( $a );
當(dāng) JavaScript 請(qǐng)求到上面的代碼,PHP 將解析數(shù)組 $a 為 json 字符串并返回到前端,但事實(shí)上在前端拿到的返回結(jié)果卻是一個(gè)數(shù)組。
[ "Jack" , "Sam" , "Tom" ]
這個(gè)結(jié)果對(duì)于前端來說也許并不是所期望的,對(duì)于 JavaScript 來說,數(shù)組和 json 的關(guān)系非常密切,甚至可以簡(jiǎn)單地把 json 理解為關(guān)聯(lián)數(shù)組,但這并不意味著二者可以劃等號(hào),比如 json 沒有 length 屬性,也不能進(jìn)行數(shù)字索引,json 是鍵值對(duì),而 JavaScript 的數(shù)組嚴(yán)格說來是沒有"鍵"的,這和 PHP 的差異比較大。那么為什么 json_encode 的返回結(jié)果是數(shù)組呢?
本文開頭的 PHP 代碼中的數(shù)組是嚴(yán)格意義上的數(shù)字索引數(shù)組,json_encode 方法在處理這樣的數(shù)組的時(shí)候會(huì)返回?cái)?shù)組字符串,它需要同時(shí)滿足兩個(gè)條件:1. 數(shù)字索引數(shù)組,2. 索引值從 0 開始。這意味著下面的代碼也會(huì)返回同樣的結(jié)果:
$b = array(
'0' => 'Jack',
'1' => 'Sam',
'2' => 'Tom'
);
echo json_encode( $b );
這兩個(gè)條件的任意一個(gè)沒有獲得滿足,那么 json_encode 方法才真正的返回 json 字符串:
$c = array(
'person-1' => 'Jack',
'person-2' => 'Sam',
'person-3' => 'Tom'
);
echo json_encode( $c );
這時(shí)前端得到的結(jié)果如下:
{
'person-1' : 'Jack',
'person-2' : 'Sam',
'person-3' : 'Tom'
};
- 淺談php和js中json的編碼和解碼
- php中json_encode中文編碼問題分析
- PHP學(xué)習(xí)散記_編碼(json_encode 中文不顯示)
- PHP中遇到BOM、<feff>編碼導(dǎo)致json_decode函數(shù)無法解析問題
- php json中文編碼為null的解決辦法
- java解析php函數(shù)json_encode unicode 編碼問題
- php5.2 Json不能正確處理中文、GB編碼的解決方法
- php實(shí)現(xiàn)json編碼的方法
- PHP自定義遞歸函數(shù)實(shí)現(xiàn)數(shù)組轉(zhuǎn)JSON功能【支持GBK編碼】
- PHP 實(shí)現(xiàn) JSON 數(shù)據(jù)的編碼和解碼操作詳解
相關(guān)文章
laravel實(shí)現(xiàn)查詢最后執(zhí)行的一條sql語句的方法
今天小編就為大家分享一篇laravel實(shí)現(xiàn)查詢最后執(zhí)行的一條sql語句的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-10-10LaravelS通過Swoole加速Laravel/Lumen詳解
這篇文章主要給大家介紹了關(guān)于LaravelS通過Swoole加速Laravel/Lumen的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2018-03-03Yii輸入正確驗(yàn)證碼卻驗(yàn)證失敗的解決方法
這篇文章主要給大家介紹了Yii輸入正確驗(yàn)證碼卻驗(yàn)證失敗的解決方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。2017-06-06一個(gè)好用的PHP驗(yàn)證碼類實(shí)例分享
這篇文章主要介紹了一個(gè)好用的PHP驗(yàn)證碼類實(shí)例,有需要的朋友可以參考一下2013-12-12PHP實(shí)現(xiàn)簡(jiǎn)單注冊(cè)登錄詳細(xì)代碼
這篇文章主要介紹了PHP實(shí)現(xiàn)簡(jiǎn)單注冊(cè)登錄詳細(xì)全部代碼實(shí)例講解,代碼講解的很清楚,對(duì)這方面不懂的初學(xué)者可以照著練習(xí)研究下2021-01-01