Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
DataSet To Json
#1
Dataseti daha önce, DataSet To XML , DataSet To Excel olarak almıştık şimdi de Dataset To Json yapıyoruz.  Smile


var
JSONField,JSONVal : TJSONObject;
JSONArray : TJSONArray;
i:integer;
begin
 try
   if Data.IsEmpty then
   begin
      Result := 'Dataset Boş';
   end else
   begin
      JSONArray := TJSONArray.Create;
      try
       while not Data.Eof do
         begin
           JSONField  := TJSONObject.Create;
           for I := 0 to Data.FieldCount - 1 do
            begin
             JSONField.AddPair(Data.Fields[i].FieldName , Data.FieldByName(Data.Fields[i].FieldName).AsString);
            end;
           JSONArray.Add(JSONField);
           Data.Next;
         end;
        Result := JSONArray.ToString;
      finally
         JSONArray.DisposeOf;
      end;
   end;
   except on E: Exception do  Result := E.Message;
 end;
end;

Dikkat : Eğer ilgili field'ınız Null ise json objesi hiç oluşmaz, okumanız gereken yerlerde buna dikkat ediniz.
WWW
Cevapla
#2
Merhaba,
Paylaşım için teşekkür ederiz. 
Yapılmışı vardı zaten. Smile İki farklı yöntemle yapmak mümkün. 
Daha önce bir konu başlığında bilrax üyemizin paylaştığı bir yöntem ve aşağıdaki gibi DataSetToJSOn ve JSONToDataSet dönüşümleri pratik bir şekilde yapılabilmektedir.

function Tdm.DataSetToJSON(Source: TFDDataSet): string;
var
 stream: TStringStream;
begin
 stream := TStringStream.Create;
 try
   Source.SaveToStream(stream, TFDStorageFormat.sfJSON);
   result := UTF8ToUnicodeString(stream.DataString);
 finally
   stream.Free;
 end;
end;


procedure Tdm.JSONToDataSet(const Source: string; Target: TFDDataSet);
var
 stream: TStringStream;
 utf8Text: UTF8string;
begin
 SetLength(utf8Text, Length(Source) * SizeOf(Char) + 1);
 UnicodeToUtf8(PAnsiChar(utf8Text), Length(utf8Text), PWideChar(Source),
   Length(Source));
 stream := TStringStream.Create(utf8Text);
 try
   Target.LoadFromStream(stream, TFDStorageFormat.sfJSON);
 finally
   stream.Free;
 end;
end;

Kaynak: delphipraxis
DelphiCan'dır!
Cevapla
#3
Bir de şöyle bir şey vardı;

DataSet to CSV
YouTube Delphi Tips
"Mantıklı adam kendini dünyaya uyarlar; mantıksız adam ise dünyayı kendine uydurmakta inat eder. Bu nedenle, tüm ilerleme o inatçı adama bağlıdır." - George Bernard Shaw
WWW
Cevapla
#4
Her yiğidin bir yoğurt yiyişi varmış Smile
WWW
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Firedac Query-Dataset Kaydırma DataChange Olayı YILDIRIMBEY 9 1.983 31-08-2025, Saat: 04:56
Son Yorum: emailx45
  Rest.JSON array serilize hk yhackup 11 2.581 28-11-2024, Saat: 12:35
Son Yorum: delphi.developer
  Json Data Binding ile oluşturulan json içine Array ekleme aegean 4 1.839 17-05-2024, Saat: 12:36
Son Yorum: Tuğrul HELVACI
  JSON DataSet Serialize for Unidac Halil Han BADEM 2 1.639 08-11-2023, Saat: 16:53
Son Yorum: Halil Han BADEM
  JSON Verilerini Veritabanına Kaydetmek kajmerantime 6 2.028 03-11-2023, Saat: 15:05
Son Yorum: kajmerantime



Konuyu Okuyanlar: 1 Ziyaretçi