2023-12-07|閱讀時間 ‧ 約 3 分鐘

[PHP][JSON]介紹

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 "錯誤!控制字元錯誤...";



分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.