Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Delphi 7 json veri işlemleri
#1
Herkese merhaba,
web geliştiricisiyim ve windows üzerinde çalışan bir erp programından veri alıp php koduma aktarmam gerekiyor. Delphi öğrenmek için bu işi kendim geliştirmek istedim ve delphi' ye adım attım.
Bir kaç sorum olacak yanıtlarsanız çok sevinirim.

1 - Rest api için aşağıdaki kodu kullanıyorum.

procedure TFrmAna.Button1Click(Sender: TObject);
var
 data: TIdMultiPartFormDataStream;
 response: String;
begin

data := TIdMultiPartFormDataStream.Create;
try
 data.AddFormField('kod', 'kullanici_kodu');
 data.AddFormField('sifre', UTF8Encode('isdaşdğpasğd'));

 IdHTTP1.HandleRedirects := True;
 IdHTTP1.ReadTimeout     := 5000;
 IdHTTP1.Request.Accept  := 'application/json';
 IdHTTP1.Request.AcceptCharSet  := 'UTF-8';
 IdHTTP1.Request.AcceptLanguage := 'tr';
 IdHTTP1.Request.ContentType    := 'application/json';

 response :=IdHTTP1.Post('http://blablabla.com/veri/deneme', data);
finally
data.Free;
Memo1.Text := response;
end;

end;


blablabla.com' a verileri post edebiliyorum. ve dönüş değerini memoya yazdırabiliyorum.
Gelen veri json olduğunda json veriyi nasıl çözümleyebilirim?

2 - birde php den gelen verileri memo ya yazdırırken türkçe karakterlerde problem yaşıyorum. Bunu nasıl çözebilirim?

şimdiden çok teşekkür ederim. 
Öğrendikçe bende forumdaki arkadaşlara yardımcı olmaya çalışıcam.
Herkese kolay gelsin.
Cevapla
#2
(13-04-2019, Saat: 18:21)onurakman Adlı Kullanıcıdan Alıntı: Herkese merhaba,
web geliştiricisiyim ve windows üzerinde çalışan bir erp programından veri alıp php koduma aktarmam gerekiyor. Delphi öğrenmek için bu işi kendim geliştirmek istedim ve delphi' ye adım attım.
Bir kaç sorum olacak yanıtlarsanız çok sevinirim.

1 - Rest api için aşağıdaki kodu kullanıyorum.

procedure TFrmAna.Button1Click(Sender: TObject);
var
 data: TIdMultiPartFormDataStream;
 response: String;
begin

data := TIdMultiPartFormDataStream.Create;
try
 data.AddFormField('kod', 'kullanici_kodu');
 data.AddFormField('sifre', UTF8Encode('isdaşdğpasğd'));

 IdHTTP1.HandleRedirects := True;
 IdHTTP1.ReadTimeout     := 5000;
 IdHTTP1.Request.Accept  := 'application/json';
 IdHTTP1.Request.AcceptCharSet  := 'UTF-8';
 IdHTTP1.Request.AcceptLanguage := 'tr';
 IdHTTP1.Request.ContentType    := 'application/json';

 response :=IdHTTP1.Post('http://blablabla.com/veri/deneme', data);
finally
data.Free;
Memo1.Text := response;
end;

end;


blablabla.com' a verileri post edebiliyorum. ve dönüş değerini memoya yazdırabiliyorum.
Gelen veri json olduğunda json veriyi nasıl çözümleyebilirim?

2 - birde php den gelen verileri memo ya yazdırırken türkçe karakterlerde problem yaşıyorum. Bunu nasıl çözebilirim?

şimdiden çok teşekkür ederim. 
Öğrendikçe bende forumdaki arkadaşlara yardımcı olmaya çalışıcam.
Herkese kolay gelsin.
Json için https://github.com/hgourvest/superobject incelemenizi tavsiye ederim içerisinde sample'lar var. Türkçe karakter sorunu ile ilgili veriler bozuk mu alıyorsunuz, yazdırırken mi sorun yaşıyorsunuz.
Yalnızım ama bir kente yürüyen ordu gibiyim, edebiyattan kaçınmalıyım..
Cevapla
#3
Delphi 7 yerine , rad studio sürümlerinden birine geçmenizi tavsiye ediyorum. Yapmak istediğiniz iş için gerekli rest bileşenlerine sahip olmuş olursunuz. Forumda Rad Studionun yanılmıyorsam 1 yıl kadar bedava kullanabileceğiniz sürümünden bahsedilmişti. Böylece hem json okuma hemde rest işlemini zahmetsizce yapabilirsiniz.
Cevapla
#4
(13-04-2019, Saat: 19:54)narkotik Adlı Kullanıcıdan Alıntı:
(13-04-2019, Saat: 18:21)onurakman Adlı Kullanıcıdan Alıntı: Herkese merhaba,
web geliştiricisiyim ve windows üzerinde çalışan bir erp programından veri alıp php koduma aktarmam gerekiyor. Delphi öğrenmek için bu işi kendim geliştirmek istedim ve delphi' ye adım attım.
Bir kaç sorum olacak yanıtlarsanız çok sevinirim.

1 - Rest api için aşağıdaki kodu kullanıyorum.

procedure TFrmAna.Button1Click(Sender: TObject);
var
 data: TIdMultiPartFormDataStream;
 response: String;
begin

data := TIdMultiPartFormDataStream.Create;
try
 data.AddFormField('kod', 'kullanici_kodu');
 data.AddFormField('sifre', UTF8Encode('isdaşdğpasğd'));

 IdHTTP1.HandleRedirects := True;
 IdHTTP1.ReadTimeout     := 5000;
 IdHTTP1.Request.Accept  := 'application/json';
 IdHTTP1.Request.AcceptCharSet  := 'UTF-8';
 IdHTTP1.Request.AcceptLanguage := 'tr';
 IdHTTP1.Request.ContentType    := 'application/json';

 response :=IdHTTP1.Post('http://blablabla.com/veri/deneme', data);
finally
data.Free;
Memo1.Text := response;
end;

end;


blablabla.com' a verileri post edebiliyorum. ve dönüş değerini memoya yazdırabiliyorum.
Gelen veri json olduğunda json veriyi nasıl çözümleyebilirim?

2 - birde php den gelen verileri memo ya yazdırırken türkçe karakterlerde problem yaşıyorum. Bunu nasıl çözebilirim?

şimdiden çok teşekkür ederim. 
Öğrendikçe bende forumdaki arkadaşlara yardımcı olmaya çalışıcam.
Herkese kolay gelsin.
Json için https://github.com/hgourvest/superobject incelemenizi tavsiye ederim içerisinde sample'lar var. Türkçe karakter sorunu ile ilgili veriler bozuk mu alıyorsunuz, yazdırırken mi sorun yaşıyorsunuz.

hocam teşekkürler verdiğiniz linki inceledim delphide yeni olduğumdan karmaşık geldi.
basit olarak dönen json veya xml leri kullanabileceğim bir kod paylaşabilir misiniz?

php de post ettiğim bilgileri print_r($_POST); şeklinde geri döndürüp memoya yazdırıyorum.
isdaşdğpasğd bunu post ettiğimde dönen  isdaÅŸdÄŸpasÄŸd bu oluyor.
Cevapla
#5
Xml için örnek sample
Json ile yapacaksan forumda önceden açılmış konular var.
Yalnızım ama bir kente yürüyen ordu gibiyim, edebiyattan kaçınmalıyım..
Cevapla
#6
İşletim sisteminde hazır olarak bulunan "Microsoft HTML Object Libarary" nesnesini kullanarak "JavaScript" ile kolayca Json parseleyebiliriz. Eğer Json metninde içiçe girintiler varsa, "eval" yöntemini kullanmak daha doğru olacaktır.

Ben Visual Basic kodu ekledim; Delphi' ye çevrilmesi çok zor olmasa gerek...



Sub Test()
   Const json = "{""name"":""Zeki"", ""age"":40, ""city"":""Sakarya""}"
   
   Set doc = CreateObject("htmlfile")

   doc.write "<meta http-equiv='x-ua-compatible' content='ie=11'><script>var jsonObject; function setToObject(jsonString) {" & _
             "jsonObject = JSON.parse(jsonString);} function getValue(key) {return jsonObject[key];}</script>"

   Set wnd = doc.parentWindow

   wnd.setToObject json

   'MsgBox wnd.getValue("name")
   'veya,

   MsgBox wnd.eval("jsonObject.name") 'eval biraz yavaş çalışır
End Sub
Cevapla
#7
Herkese çok teşekkürler.
örnek sample dan xml ile işimi hallettim.
Cevapla
#8
Çok sağlıklı çalıştığından emin değilim ama eski sürüm delphiler için LkJSON kütüphanesi var.
Cevapla
#9
Ole kütüphanesi veya json serialize edecek githubta örnek kodlar var. Tam olarak ihtiyacınız nedir
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Logo Go3 de döviz tablosunda Date_ alanına veri (Çözüldü) yazma cinarbil 4 172 19-04-2024, Saat: 08:25
Son Yorum: cinarbil
  delphi 10.4 deutsch1988 0 99 18-04-2024, Saat: 11:46
Son Yorum: deutsch1988
  Delphi virus gibi deutsch1988 11 536 12-04-2024, Saat: 17:36
Son Yorum: deutsch1988
  Delphi 7 Unrar mcuyan 12 712 19-03-2024, Saat: 10:30
Son Yorum: frmman
Lightbulb Delphi 7zip Password lü Dosya Sıkıştırma ve Açma + Bonus RAR5 Desteği frmman 6 335 16-03-2024, Saat: 17:55
Son Yorum: delphi.developer



Konuyu Okuyanlar: 1 Ziyaretçi