TDataset ToJSONData

Yazdığınız makaleleri ve üyelerimizin işine yarayacağını düşündüğünüz kodlarınızı gönderebilirsiniz. Bu foruma soru sormayın!
Cevapla
ismailkocacan
Üye
Mesajlar: 88
Kayıt: 25 Eyl 2011 06:11
Konum: İstanbul
İletişim:

TDataset ToJSONData

Mesaj gönderen ismailkocacan »

Kod: Tümünü seç

{ İ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. :wink:
Örnek Çıktı

Kod: Tümünü seç

{
 "result":
  [
   {"RID":"3","FIRSTNAME":"serdar","LASTNAME":"sezer"},
   {"RID":"2","FIRSTNAME":"kemal","LASTNAME":"bayat"},
   {"RID":"1","FIRSTNAME":"ismail","LASTNAME":"kocacan"}
  ]
}
En son ismailkocacan tarafından 11 Eyl 2012 01:25 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Kullanıcı avatarı
Lost Soul
Üye
Mesajlar: 1064
Kayıt: 01 Nis 2007 02:55
Konum: mekan ANKARA toprak ELAZIĞ
İletişim:

Re: TDataset ToJSONData

Mesaj gönderen Lost Soul »

json desteği delphinin hangi sürümünden sonra var acaba.
Yoksa buradaki json bildiğimiz jsondan farklı mı?
ismailkocacan
Üye
Mesajlar: 88
Kayıt: 25 Eyl 2011 06:11
Konum: İstanbul
İletişim:

Re: TDataset ToJSONData

Mesaj gönderen ismailkocacan »

yanlış hatırlamıyorsam xe ve üstü olabilir.
Cevapla