JSON 是一項旨在允許中間件創建使用 JavaScript 固有格式的對象的協議。它最強大的屬性是它是一種輕量級協議。簡單處理 RSS 聚合或 recipe 列表時,您不需要在 JavaScript 中使用 XML 的全部功能。不需要驗證格式或確保嚴格的數據鍵入。
PHP JSON擴展編碼和解碼
有兩個函數用於PHP JSON擴展:encode 和 decode。第一個函數將把任意類型的數據對象轉換為一組序列化數據,以供 JavaScript 處理。第二個函數將把序列化數據解碼,並將其轉換為基本 PHP 對象或聯合數組。我們來看一看 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);
- ?>
如上,我們有一個 PHP 腳本,該腳本將獲取 $jsonObject 並將其解碼回 PHP 固有對象。我們進行了兩次解碼。第一次,使用未經修改的用法,這將得到 stdClass 的對象;第二次,使用布爾型參數來創建聯合數組。
以下是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] => ) )
我們再來看看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;
- ?>
沒有使用遞歸。沒有添加標記。只需將其傳入 json_encode() 函數,然後它將從另一端作為 JSON 序列化對象傳出。
結束語
JSON 是一種有用的、輕量級協議,現在可用於 PHP V5.2,它可以輕松地實現從 PHP 應用程序中提取出數據,並將其放入 Ajax 應用程序的過程。相應地,PHP JSON擴展同樣也是輕量級且十分有用的,只包含兩個易於使用的函數。
使用這些函數,我們可以轉換和導出對象結構,還可以使用 json_encode() 使來自 PHP 數據庫連接的數據可用於 Ajax 應用程序。在 Ajax 應用程序中處理完數據後,可以將數據返回 PHP 腳本並用 json_decode() 重新創建可用的對象數據結構。當把數據返回到 PHP 後,我們可以將其存儲到數據庫中,或使用 PHP 提供的眾多選擇中的任何其他數據處理方法。