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
  Delphi 10.1 Berlin, FireDac, SQLite, .s3db Gürcan 2 239 28-07-2020, Saat: 10:57
Son Yorum: Gürcan
Heart Delphi Edge Web Tarayıcı ahmmetdelphi 9 486 26-07-2020, Saat: 09:12
Son Yorum: ahmmetdelphi
  Problem - ZKTeco Cihazlardan Anlık Veri Alma mad85 7 746 24-07-2020, Saat: 16:00
Son Yorum: mad85
  Delphi 10.3.3 Fast Report MEDCEZİR 2 333 20-07-2020, Saat: 11:57
Son Yorum: kaplanalpay0
  Inform AP modeli Ups'den veri alma, bağlantı sağlama 41linea41 0 168 15-07-2020, Saat: 09:52
Son Yorum: 41linea41



Konuyu Okuyanlar: 1 Ziyaretçi