[PHP][JSON]介紹

[PHP][JSON]介紹

小黑-avatar-img
發佈於後端
更新於 發佈於 閱讀時間約 3 分鐘

JSON(JavaScript Object Notation)是AJAX(參考:[PHP][AJAX]介紹)常用的資料交換格式。在PHP有提供函數,可以將資料轉換成JSON。除外JSON比XML快速且簡單。

語法

  • 資料是由鍵和值(Key-value)組成。
  • 鍵和值之間用「:」區隔。
  • 資料之間用「,」做區隔。
  • 用大括號定義物件。
  • 用方括號定義陣列。


例如:

{
"id": 1,
"name": "Tom",
"phoneNumber": ["0912345678", "0987654321"]
"child": [
{ "id": 2, "name": "Jack"},
{ "id": 3, "name": "Joe"}]
}


PHP轉JSON

$data = array('Tom','Jack');
$json_string = json_encode($data);

json_encode()有兩個參數,第一個要轉換的資料,第二個對資料內容做特殊轉換。底下為常用的轉換參數:

  • JSON_HEX_TAG:將「<」轉換成「\u003C」;將「>」轉換成「\u003E」。
  • JSON_HEX_AMP:將「&」轉換成「\u0026」。
  • JSON_HEX_APOS:將「'」轉換成「\u0027」
  • JSON_HEX_QOUT:將「"」轉換成「\u0022」
  • JSON_FORCE_OBJECT:轉換結果為物件,不是陣列。


JSON轉PHP

$data = array('Tom','Jack');
$json_string = json_encode($data);
$json_array = json_dencode($json_string);

json_dencode()有三個參數,第一個要轉換的資料,第二個是選擇輸出物件或陣列(預設值為FALSE,輸出的是物件),第三個是選擇遞迴深度(預設值為512)。


轉換錯誤

switch(json_last_error()) {
case JSON_ERROR_NONE:
echo "轉換成功...";
break;
case JSON_ERROR_SYNTAX:
echo "錯誤!語法錯誤...";
break;
case JSON_ERROR_DEPTH:
echo "錯誤!超過最大允許的遞迴深度...";
break;
case JSON_ERROR_CTRL_CHAR:
echo "錯誤!控制字元錯誤...";



avatar-img
小黑與程式的邂逅
8會員
123內容數
嗨,我是一名程式設計師,會在這分享開發與學習紀錄。
留言
avatar-img
留言分享你的想法!
小黑與程式的邂逅 的其他內容
REST(REpresentational State Transfer)是一種WWW的Web架構,常被使用於JSON或XML的Web服務,而符合REST原則的系統就稱為RESTful。REST API(RESTful API)是一種符合REST的API應用。 方法說明 GET:向伺服器取得
在欄位輸入關鍵字,就會顯示提示列表。 架構 由HTML表單、jQuery的AJAX和PHP與MySQL組成。 先在HTML的文字輸入欄位,輸入關鍵字,接著會呼叫jQuery的AJAX去伺服器,取得建議列表;伺服器收到需求後,PHP會連接MySQL,取得建議列表,接著會建立JSON文件並回傳。
AJAX(Asynchronous JavaScript And XML)為JavaScript和XML的非同步技術,可以讓瀏覽器建立快速、更加和容易使用的操作介面。AJAX核心技術是非同步的HTTP請求(Asynchronous HTTP Requests),除了第一次載入網頁外,HTTP請求是在
REST(REpresentational State Transfer)是一種WWW的Web架構,常被使用於JSON或XML的Web服務,而符合REST原則的系統就稱為RESTful。REST API(RESTful API)是一種符合REST的API應用。 方法說明 GET:向伺服器取得
在欄位輸入關鍵字,就會顯示提示列表。 架構 由HTML表單、jQuery的AJAX和PHP與MySQL組成。 先在HTML的文字輸入欄位,輸入關鍵字,接著會呼叫jQuery的AJAX去伺服器,取得建議列表;伺服器收到需求後,PHP會連接MySQL,取得建議列表,接著會建立JSON文件並回傳。
AJAX(Asynchronous JavaScript And XML)為JavaScript和XML的非同步技術,可以讓瀏覽器建立快速、更加和容易使用的操作介面。AJAX核心技術是非同步的HTTP請求(Asynchronous HTTP Requests),除了第一次載入網頁外,HTTP請求是在