10-05-2019, Saat: 19:40
(Son Düzenleme: 13-05-2019, Saat: 08:05, Düzenleyen: TescilsizUzman.)
Benzer bir konu forumda görüm ama oradaki son mesaj neredeyse 1 sene önce atılmış olduğundan hortlatmayayım diye, ayrı bir başlık olarak yazmak istedim.
REST.JSon ile, Delphi uygulamasında bir nesnemden ürettiğim JSon metnini .net ile yazdığım başka bir socket uygulamama gönderiyorum. Orada Deserialize edip, işlemi yapıp, aynı nesne tipiyle geriye yanıtı Serialize edip JSon olarak gönderiyorum. Ancak, Delphi uygulamamda, .net socket uygulamadan gelen bu yanıtı TJSon.JsonToObject ile nesneme çevirmek istediğimde boş olarak nesneleştiriyor.
Forumda ve nette bulabildiğim mevcut örnekleri inceledim ve olası şekilleri denedim.
JSon metninde de sorun olmadığını düşünüyorum zira .net ile aynı denemeyi yaptığımda yapabiliyor. Nesnemin yapısında TArray' ler mevcut. bununla ilgili olabilir mi ? Veya nesnenin alt nesnelerindekilerin null dönmesi .nette sorun çıkarmazken Delphi de soruna mı yol açıyor ?
Serialize ettiği bir nesneyi neden tekrar nesneleştiremediğini bulamadım, önerisi olan var mı ?
Kod yapısı kabaca şöyle :
REST.JSon ile, Delphi uygulamasında bir nesnemden ürettiğim JSon metnini .net ile yazdığım başka bir socket uygulamama gönderiyorum. Orada Deserialize edip, işlemi yapıp, aynı nesne tipiyle geriye yanıtı Serialize edip JSon olarak gönderiyorum. Ancak, Delphi uygulamamda, .net socket uygulamadan gelen bu yanıtı TJSon.JsonToObject ile nesneme çevirmek istediğimde boş olarak nesneleştiriyor.
Forumda ve nette bulabildiğim mevcut örnekleri inceledim ve olası şekilleri denedim.
JSon metninde de sorun olmadığını düşünüyorum zira .net ile aynı denemeyi yaptığımda yapabiliyor. Nesnemin yapısında TArray' ler mevcut. bununla ilgili olabilir mi ? Veya nesnenin alt nesnelerindekilerin null dönmesi .nette sorun çıkarmazken Delphi de soruna mı yol açıyor ?
Serialize ettiği bir nesneyi neden tekrar nesneleştiremediğini bulamadım, önerisi olan var mı ?
Kod yapısı kabaca şöyle :
// Deklarasyon Type TAltNesne = Class Private _iValAlt : Integer; _sValAlt : String; Public Property iValAlt : Integer read _iValAlt write _iValAlt; Property sValAlt : Integer read _sValAlt write _sValAlt; End; Type TMembers = Class Private _iVal : Integer; _sVal : String; _AltNesne : TArray<TAltNesne>; Public Property iVal : Integer read _iVal write _iVal; Property sVal : Integer read _sVal write _sVal; Property AltNesne : TArray<TAltNesne> read _AltNesne write _AltNesne; End; Type TNesne = Class Private _responseResult : Boolean; _responseMessage : String; _responseMembers : TMembers; Public Property responseResult : Boolean read _responseResult write _responseResult; Property responseMessage : String read _responseMessage write _responseMessage; Property responseMembers : TMembers read _responseMembers write _responseMembers; End; // Çağrılan kısım : var tempResponse : TNesne; tempResponse := TJSon.JsonToObject<TNesne>(sJSonDonen);