Delphi是一種是高級(jí)的面向?qū)ο缶幊陶Z言,其支持各種數(shù)據(jù)源以及數(shù)據(jù)格式。JSON是一種輕量級(jí)的數(shù)據(jù)交換格式,逐漸成為各種應(yīng)用程序的數(shù)據(jù)格式標(biāo)準(zhǔn)。Delphi對(duì)JSON的支持是基于TJSONDocument和TJSONObject這兩個(gè)類的。
var
JSONDoc: TJSONDocument;
JSONObj: TJSONObject;
// 加載JSON數(shù)據(jù)
begin
JSONDoc := TJSONDocument.Create(json_data);
JSONObj := JSONDoc.JSON;
end;
上面的代碼演示了如何將一個(gè)JSON字符串解析并加載至Delphi的TJSONObject對(duì)象中。我們可以使用TJSONPair的實(shí)例來添加JSON屬性至JSON對(duì)象中:
var
JSONDoc: TJSONDocument;
JSONObj: TJSONObject;
JSONPair: TJSONPair;
// 添加JSON屬性
begin
JSONPair := TJSONPair.Create('name', '張三');
JSONObj.AddPair(JSONPair);
JSONPair := TJSONPair.Create('age', 30);
JSONObj.AddPair(JSONPair);
JSONPair := TJSONPair.Create('isMarried', True);
JSONObj.AddPair(JSONPair);
// 輸出JSON對(duì)象
Memo1.Lines.Add(JSONObj.ToJSON);
end;
TJSONObject也支持從其他JSON源(如文件或網(wǎng)絡(luò))中讀取JSON數(shù)據(jù),可以使用TJSONStreamer類進(jìn)行數(shù)據(jù)流的處理:
var
JSONDoc: TJSONDocument;
JSONObj: TJSONObject;
JSONStreamer: TJSONStreamer;
// 讀取JSON文件
begin
JSONStreamer := TJSONStreamer.Create(nil);
JSONDoc := TJSONDocument.Create;
try
JSONStreamer.InputStream := TFileStream.Create('data.json', fmOpenRead or fmShareDenyWrite);
JSONDoc := JSONStreamer.JSONReader.ReadJSON(JSONStreamer.InputStream) as TJSONDocument;
JSONObj := JSONDoc.JSON;
finally
JSONStreamer.Free;
JSONDoc.Free;
end;
end;
總之,Delphi對(duì)JSON的支持非常完善,使用起來相當(dāng)簡單。我們可以通過TJSONDocument和TJSONObject等類來方便地解析、創(chuàng)建、修改、序列化和反序列化JSON數(shù)據(jù)。