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

PHP + Android APP 介面串接:JSON vs XML 選型指南

     編輯:PHP 相關知識

PHP + Android APP 介面串接:JSON vs XML 選型指南

移動 APP 與後端 API 串接時,資料格式選擇直接影響開發效率與傳輸效能。本文對比 JSON 與 XML 特性,提供選型建議與 PHP 實作範例。

APP 介面三要素

  1. 介面網址:https://api.example.com/v1/user/login
  2. 介面檔案:處理業務邏輯的 PHP 腳本
  3. 通訊資料格式:JSON 或 XML

B/S vs APP 介面差異

JSON vs XML 深度對比

特性B/S (瀏覽器)APP (原生/混合)
網址可見性地址列可見封裝在代碼中,用戶不可見
回傳格式HTML (含樣式/腳本)純資料:JSON / XML
狀態管理Cookie/SessionToken (JWT) / 自訂 Header
維度JSONXML
可讀性結構簡潔,Key-Value 直觀標籤巢狀,層次分明但冗長
資料體積✅ 無標籤,約 XML 60-70%較大,含開關標籤
解析速度✅ 原生物件映射,極快需 DOM/SAX 解析,較慢
PHP 生成✅ json_encode($arr) 一行搞定需拼接字串或用 XMLWriter
型別支援字串、數字、布林、null、陣列、物件僅字串,型別需自行約定
跨語言✅ 標準化,所有語言支援✅ 標準化
註解支援❌ 無✅ 有
Schema 驗證JSON Schema (較新)XSD/DTD (成熟)

JSON 兩種常見結構

// 1. 物件陣列(推薦,語意清晰)
[
  {"title": "文章一", "author": "張三", "date": "2024-01-01"},
  {"title": "文章二", "author": "李四", "date": "2024-01-02"}
]

// 2. 單一物件(單筆資料)
{"title": "文章一", "author": "張三", "date": "2024-01-01"}

PHP 生成 JSON / XML 範例

JSON(標準作法)

<?php
header('Content-Type: application/json; charset=utf-8');

$data = [
    'code'    => 200,
    'message' => 'success',
    'data'    => [
        ['id' => 1, 'name' => '商品A', 'price' => 100],
        ['id' => 2, 'name' => '商品B', 'price' => 200],
    ],
];

echo json_encode($data, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
?>

XML(特殊需求時)

<?php
header('Content-Type: application/xml; charset=utf-8');

$data = [
    'code'    => 200,
    'message' => 'success',
    'items'   => [
        ['id' => 1, 'name' => '商品A', 'price' => 100],
        ['id' => 2, 'name' => '商品B', 'price' => 200],
    ],
];

$xml = new SimpleXMLElement('<?xml version="1.0" encoding="utf-8"?><response/>');
arrayToXml($data, $xml);

function arrayToXml(array $data, SimpleXMLElement $xml) {
    foreach ($data as $key => $value) {
        if (is_array($value)) {
            $child = $xml->addChild($key);
            arrayToXml($value, $child);
        } else {
            $xml->addChild($key, $value);
        }
    }
}

echo $xml->asXML();
?>

APP 介面功能分類

類型HTTP Method用途範例
獲取資料GET首頁列表、詳情、搜尋GET /api/articles?page=1
提交資料POST註冊、登入、發文、評論POST /api/feedback
更新資料PUT/PATCH修改個人資料、更新文章PUT /api/user/profile
刪除資料DELETE刪除評論、取消收藏DELETE /api/favorite/123
版本檢查POST上傳當前版本,回傳是否需更新POST /api/app/check_update

選型建議決策樹

需要支援舊版 Android (≤2.3) 或特定企業系統要求 XML?
    ├─ 是 → 使用 XML (SimpleXMLElement / XMLWriter)
    └─ 否 → 使用 JSON (預設首選)
              ├─ 高頻、大量列表 → JSON (體積小、解析快)
              ├─ 需嚴格 Schema 驗證 → JSON Schema 或 XML+XSD
              └─ 需資料註解/文檔化 → JSON + 額外文檔 或 XML

安全性共通建議

  • 全站 HTTPS,防止中間人竄改
  • API 簽名(AppId + AppSecret + Timestamp + Nonce)防重放
  • 敏感操作需 Token 驗證(JWT 或 OAuth2)
  • 限流:同一 IP/用戶每分鐘請求上限
  • 輸入驗證:長度、型別、格式、XSS/注入過濾

現代 APP 開發 JSON 為首選,XML 僅在相容舊系統或特定企業標準時使用。希望本文助您做出正確選型。

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