JSON (JavaScript Object Notation) 是一種輕量級的數據交換格式。雖然起源於 JavaScript,但它採用完全獨立於語言的文本格式,具有極佳的可讀性和易於機器解析生成的特性,現已成為 Web API、配置文件、NoSQL 數據庫的標準數據格式。Delphi 2009 正式引入原生 JSON 支持(DBXJSON 單元),標誌著 Delphi 開發者能夠無縫處理現代 Web 數據交互。
以一個簡單的用戶信息為例:
<!-- XML 格式 -->
<id>2</id>
<name>張三</name>
<age>99</age>
{/* JSON 格式 */}
{
"id": 2,
"name": "張三",
"age": 99
}
JSON 結構更緊湊,無冗餘標籤,解析速度更快,尤其適合網絡傳輸。
{} 包裹,由鍵值對組成,鍵必須用雙引號括起,鍵值間用冒號 : 分隔,多對間用逗號 , 分隔。[] 包裹,值之間用逗號分隔。true/false)、null。\n, \t, \", \\)。JSON 在 JavaScript 中可直接作為對象字面量訪問,極為方便:
// 例 1: 簡單對象
var Data = {"id":2, "name":"張三", "age":99};
var id = Data.id; // 2
var name = Data.name; // "張三"
var name2 = Data["name"]; // "張三"
// 例 2: 嵌套對象
var Data = {"id":2, "name":{"FirstName":"張", "LastName":"三"}, "age":99};
var fn = Data.name.FirstName; // "張"
// 例 3: 對象數組
var Data = [
{"name":"張三", "age":9},
{"name":"李四", "age":19},
{"name":"王五", "age":29}
];
var thirdName = Data[2].name; // "王五" (索引從 0 開始)
// 例 4: 包含數組的對象
var Data = {"name":"張三", "age":19, "like":["游戲","足球"]};
var sport = Data.like[1]; // "足球"
Delphi 2009 引入 DBXJSON 單元,提供 TJSONObject、TJSONArray、TJSONValue 等類,支持:
TJSONObject.ParseJSONValueTJSONObject.Create, TJSONArray.AddGetValue, GetValue<T>ToString, ToJSON這使得 Delphi 應用能輕松實現 REST API 客戶端/服務端、配置文件存儲、前後端數據交互等現代開發場景。
更多 Delphi JSON 實戰技巧可參考:Delphi 2009 JSON 詳細教程