技巧總結(jié) 正確使用PHP JSON擴(kuò)展
PHP JSON擴(kuò)展的應(yīng)用方法對(duì)于剛剛接觸PHP語(yǔ)言不久的小菜鳥(niǎo)們肯定是非常陌生的。我們?cè)诮酉聛?lái)的內(nèi)容中將會(huì)針對(duì)這一應(yīng)用方法做一個(gè)詳細(xì)的介紹。#t#
JSON 是一項(xiàng)旨在允許中間件創(chuàng)建使用 JavaScript 固有格式的對(duì)象的協(xié)議。它***大的屬性是它是一種輕量級(jí)協(xié)議。簡(jiǎn)單處理 RSS 聚合或 recipe 列表時(shí),您不需要在 JavaScript 中使用 XML 的全部功能。不需要驗(yàn)證格式或確保嚴(yán)格的數(shù)據(jù)鍵入。
PHP JSON擴(kuò)展編碼和解碼
有兩個(gè)函數(shù)用于PHP JSON擴(kuò)展:encode 和 decode。***個(gè)函數(shù)將把任意類(lèi)型的數(shù)據(jù)對(duì)象轉(zhuǎn)換為一組序列化數(shù)據(jù),以供 JavaScript 處理。第二個(gè)函數(shù)將把序列化數(shù)據(jù)解碼,并將其轉(zhuǎn)換為基本 PHP 對(duì)象或聯(lián)合數(shù)組。我們來(lái)看一看 json_decode()。
json_decode() 的示例
- < ?php
- $jsonObject = '{"21":{"url":"www.blah.com
\/story1.html","title":"JSON is sweeping
AJAX world","viewed":false},"22":{"url":
"www.blah.com\/story2.html","title":"JSON
is great","viewed":false}}';- $decodedObject = json_decode($jsonObject);
- $decodedArray = json_decode($jsonObject, true);
- print_r($decodedObject);
- echo "< br>< br>";
- print_r($decodedArray);
- ?>
如上,我們有一個(gè) PHP 腳本,該腳本將獲取 $jsonObject 并將其解碼回 PHP 固有對(duì)象。我們進(jìn)行了兩次解碼。***次,使用未經(jīng)修改的用法,這將得到 stdClass 的對(duì)象;第二次,使用布爾型參數(shù)來(lái)創(chuàng)建聯(lián)合數(shù)組。
以下是decode的輸出:
- stdClass Object ( [21] =>
stdClass Object ( [url] =>
www.blah.com/story1.html [title] =>
JSON is sweeping AJAX world [viewed] =>
) [22] => stdClass Object ( [url] =>
www.blah.com/story2.html [title] =>
JSON is great [viewed] => ) ) Array ( [21] =>
Array ( [url] => www.blah.com/story1.html
[title] => JSON is sweeping AJAX world
[viewed] => ) [22] => Array ( [url] =>
www.blah.com/story2.html [title] =>
JSON is great [viewed] => ) )
我們?cè)賮?lái)看看encode:
- < ?php
- $results = array("21" =>
- array("url" =>
- "www.blah.com/story1.html", "title" =>
- "JSON is sweeping AJAX world", "viewed" =>
- FALSE), "22" => array("url"=>
- "www.blah.com/story2.html", "title" =>
- "JSON is great", "viewed" => FALSE));
- $jsonObject = json_encode($results);
- echo $jsonObject;
- ?>
沒(méi)有使用遞歸。沒(méi)有添加標(biāo)記。只需將其傳入 json_encode() 函數(shù),然后它將從另一端作為 JSON 序列化對(duì)象傳出。
結(jié)束語(yǔ)
JSON 是一種有用的、輕量級(jí)協(xié)議,現(xiàn)在可用于 PHP V5.2,它可以輕松地實(shí)現(xiàn)從 PHP 應(yīng)用程序中提取出數(shù)據(jù),并將其放入 Ajax 應(yīng)用程序的過(guò)程。相應(yīng)地,PHP JSON擴(kuò)展同樣也是輕量級(jí)且十分有用的,只包含兩個(gè)易于使用的函數(shù)。
使用這些函數(shù),我們可以轉(zhuǎn)換和導(dǎo)出對(duì)象結(jié)構(gòu),還可以使用 json_encode() 使來(lái)自 PHP 數(shù)據(jù)庫(kù)連接的數(shù)據(jù)可用于 Ajax 應(yīng)用程序。在 Ajax 應(yīng)用程序中處理完數(shù)據(jù)后,可以將數(shù)據(jù)返回 PHP 腳本并用 json_decode() 重新創(chuàng)建可用的對(duì)象數(shù)據(jù)結(jié)構(gòu)。當(dāng)把數(shù)據(jù)返回到 PHP 后,我們可以將其存儲(chǔ)到數(shù)據(jù)庫(kù)中,或使用 PHP 提供的眾多選擇中的任何其他數(shù)據(jù)處理方法。