Ajax 全稱 Asynchronous JavaScript and XML,但 XML 並非唯一選擇。XML 本質是符合規範的文本,解析需遍歷 DOM 樹,效能低且代碼冗長。JSON (JavaScript Object Notation) 作為 JavaScript 原生物件字面量表示,天然適合瀏覽器端處理,成為現代 Ajax 首選資料格式。
eval() 或 JSON.parse() 直接轉為 JavaScript 物件。JSON 全域物件。{ "name": "Michael", "email": "17bity@gmail.com", "homepage": "https://www.jialing.net" }
[
{ "name": "Michael", ... },
{ "name": "John", ... },
{ "name": "Peggy", ... }
]
字串 (雙引號)、數值、布林、null、物件、陣列,支援任意巢狀。
// 客戶端
var xhr = new XMLHttpRequest();
xhr.open('GET', '/api/contacts', true);
xhr.onload = function() {
if (xhr.status === 200) {
var contacts = JSON.parse(xhr.responseText); // 安全解析
renderContacts(contacts);
}
};
xhr.send();
// 伺服器端 回傳
// Content-Type: application/json
// [
// {"name":"Michael","email":"17bity@gmail.com"},
// {"name":"John","email":"john@gmail.com"}
// ]
| 維度 | JSON | XML |
|---|---|---|
| 可讀性 | 高,結構直觀 | 高,標籤語義豐富 |
| 擴展性 | 優,結構靈活 | 優,命名空間支援 |
| 編碼難度 | 極低,手寫無壓力 | 需工具輔助 |
| 解碼難度 | 極低,原生支援 | 高,需 DOM/SAX 解析 |
| 生態成熟度 | Web 領域主流 | 企業整合、文檔標準 |
在 Ajax 這一特定領域,JSON 以原生優勢全面超越 XML。未來術語或將演進為 AJAJ (Asynchronous JavaScript and JSON)。建議新專案優先採用 JSON,既有 XML 系統可漸進式遷移。