{ İsmail Kocacan } unit uJsonHelper; interface uses Data.DB, System.SysUtils, Data.DBXJSON, Data.DBXJSONCommon, Data.DBXJSONReflect; type TDatasetJSONHelper = class helper for TDataset public function ToJSONData: TJSONArray; end; implementation { TDatasetJSONHelper } function TDatasetJSONHelper.ToJSONData: TJSONArray; var jso: TJSONObject; jsa: TJSONArray; jsp: TJsonPair; J: Integer; begin Self.Open; jsa := TJSONArray.Create(); while not Self.Eof do begin jso := TJSONObject.Create(); for J := 0 to FieldCount - 1 do jso.AddPair(TJsonPair.Create(Fields[J].DisplayName, Fields[J].Value)); jsa.AddElement(jso); Self.Next; end; Self.Close; Result := jsa; end; end.TDataset sınıfına uzanım fonksiyonu olarak yazmamızın sebebi; TDataset sınıfı kullanılarak genişletilen(kalıtılan) üst sınıflarda da,kolayca kullanabilelim diyedir.
Örneğin ;
SQLQuery1.ToJSONData;
ADOQuery1.ToJSONData;
UniQuery1.ToJSONData;
BilmemNeQuery1.ToJSONData;
Şeklinde kullanabilmek mümkün olacaktır.
Örnek Çıktı
{ "result": [ {"RID":"3","FIRSTNAME":"serdar","LASTNAME":"sezer"}, {"RID":"2","FIRSTNAME":"kemal","LASTNAME":"bayat"}, {"RID":"1","FIRSTNAME":"ismail","LASTNAME":"kocacan"} ] }Yukarıdaki çıktıyı alabilmek için bir takım düzenlemeler yapmak gerekiyor.Bu düzenlemeleri Datasnap REST Ve JSON Formatı Hakkında konusunda bulabilirsiniz.