delphi 2010 內部開始支援 json 的資料格式, 其在 DBXJSON 內 TJSONObject 用來操作 JSON 資料格式
另外其他支援 JSON 的 library 有 superobject, lkJSON 不過似乎都沒有在發表新版本了, 另網路上有說 lkJSON 在資料量大時會有錯誤, 真實如何自己尚未求證.var Obj, RestoredObject, JSON: TJSONObject; arr: TJSONArray; Str: String; c:TBytes; ff : TStringList; js:TJSONString; begin JSON := TJSONObject.Create; try JSON.AddPair('FirstName', TJSONString.Create('Daniele')); JSON.AddPair(TJSONPair.Create('LastName', 'Teti')); arr := TJSONArray.Create; arr.Add(123456789); arr.Add('peter.parker@bittime.it'); arr.Add('Via Roma, 12'); JSON.AddPair(TJSONPair.Create('Contacts', arr)); Obj := TJSONObject.Create; Obj.AddPair(TJSONPair.Create('John', '中文')); JSON.AddPair('MyUndefinedPersonObject', Obj); TFile.WriteAllText('jsonfile.txt', JSON.ToString); // //c := TEncoding.Unicode.GetBytes('中'); //45,78 => 2d,4e => \u4e2d ff := TStringList.Create; ff.LoadFromFile('jj.json');//從檔案載入 c := Bytesof(trim(ff.Text));//利用teim()去除最後的 #13#10 不然會無法解析 RestoredObject := TJSONObject.ParseJSONValue(c, 0) as TJSONObject; if Assigned(RestoredObject) then begin Str := RestoredObject.ToString;//.Get(0).JsonValue.Value; Memo1.Lines.Add('Readed JSON object from file: ' + sLineBreak+ str); end; except Memo1.Lines.Add('Err'); end; ff.Free; JSON.Free; end;
from http://json.org/json-zh.html