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 7- 4 Adet Tablo Döngü Problemi bsrgmsy 2 144 20-05-2019, Saat: 17:17
Son Yorum: bsrgmsy
  C# -> Delphi ... Gürcan 2 124 20-05-2019, Saat: 14:41
Son Yorum: Gürcan
  REST.Json, TJSon.JsonToObject sorunsalı Gürcan 13 414 18-05-2019, Saat: 10:45
Son Yorum: SimaWB
Question Veritabanindan Word dosyasina veri eklemek Ugur 13 409 09-05-2019, Saat: 17:19
Son Yorum: Ugur
  Veri tabanına aynı değeri tekrarlama arsl01 21 502 03-05-2019, Saat: 11:34
Son Yorum: edo



Konuyu Okuyanlar: 1 Ziyaretçi