首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP JSON 資料交換實戰:json_encode 與 json_decode 完整解析

     編輯:PHP 綜合知識

JSON 基礎概念

JSON (JavaScript Object Notation) 是輕量級資料交換格式,易於人閱讀、機器解析。兩大核心結構:

  • 名稱/值對集合:對應 PHP 關聯陣列。
  • 有序值列表:對應 PHP 索引陣列。

物件以 {} 包裹,陣列以 [] 包裹,值支援字串、數值、布林、null、物件、陣列,可巢狀嵌套。

PHP 5.2+ 內建 JSON 支援

無需額外安裝。注意:請確保檔案編碼為 UTF-8,避免中文亂碼。

JavaScript 中的 JSON 形式

// 物件形式
var json_obj = {'WebName':'PHP網站開發教程網'};
alert(json_obj.WebName);

// 陣列包含物件 (類關聯陣列)
var json_arr = [{'WebName':'PHP網站開發教程網','WebSite':'https://www.jb51.net'},{'ArtTitle':'PHP JSON實例講解'}];
alert(json_arr[1].ArtTitle);

// 純陣列形式
var php_json = [['PHP網站開發教程網','https://www.jb51.net'],['文章標題','PHP JSON實例講解']];
alert(php_json[1][0]);

提醒: JavaScript 區分大小寫,存取鍵名時需完全一致。

PHP 與 JSON 互轉核心函數

函數用途說明
json_encode()PHP 陣列/物件 → JSON 字串支援關聯陣列與索引陣列
json_decode()JSON 字串 → PHP 變數預設回傳物件,加 true 參數回傳關聯陣列

基本互轉範例

<?php
$json_arr = array('WebName'=>'PHP網站開發教程網','WebSite'=>'https://www.jb51.net');
$php_json = json_encode($json_arr);
echo $php_json; // 輸出: {"WebName":"PHP網站開發教程網","WebSite":"https://www.jb51.net"}

$php_json = json_decode($php_json);
print_r($php_json); // 預設為物件
// 若需陣列: json_decode($php_json, true);
?>

完整前後端交互範例

<?php
$json_arr = array('WebName'=>'PHP網站開發教程網','WebSite'=>'https://www.jb51.net');
$php_json = json_encode($json_arr);
?>
<script type="text/javascript">
var php_json = <?=$php_json?>;
</script>
<script type="text/javascript">
function php_json_dis(php_json) {
    alert(php_json.WebName);
    alert(php_json.WebSite);
}
php_json_dis(php_json);
</script>

流程:PHP 端 json_encode → 直接輸出至 JS 變數 → JS 端直接存取屬性。無需手動解析,極度簡潔。

常見坑點與提示

  • 編碼必須 UTF-8:EditPlus 等編輯器儲存時請選 UTF-8,否則中文會變 \uXXXX 或亂碼。
  • json_decode 預設回傳 stdClass 物件,習慣用陣列請加第二參數 true。
  • JSON 字串鍵名必須雙引號,單引號會導致解析失敗。
  • 資料量大時注意 memory_limit 與 max_execution_time。

總結

json_encode / json_decode 讓 PHP 與前端、API 介接變得極其輕鬆。掌握編碼規範與參數細節,即可高效處理 JSON 資料交換。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved