"invalid class typecast" ObjectToJsonString

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
ercan_elo_bil
Üye
Mesajlar: 26
Kayıt: 11 Tem 2014 11:13

"invalid class typecast" ObjectToJsonString

Mesaj gönderen ercan_elo_bil »

merhaba,

Exe oluşturduğum class ObjectToJsonString ile json a cevirebiliyorum ,

bu exede oluşan classı dll gönderdiğimde ve dll bu class kullanabiliyor fakat dll de bu class ObjectToJsonString ile json cevirdiğimde
"invalid class typecast" hatası alıyorum.

Bu sorunu nasıl atlatabilirim?

Not: bunun tam terside aynı dllde oluşan class json a cevirilebiliyor fakat exe e iletildikten sonra json string cevirdiğimde aynı hatayı alıyorum.

kolay gelsin.
Garbage Collector, Delphi çöp üretmez çöpü bulup temizlemeye asla gerek yoktur... :D
ertank
Kıdemli Üye
Mesajlar: 1650
Kayıt: 12 Eyl 2015 12:45

Re: "invalid class typecast" ObjectToJsonString

Mesaj gönderen ertank »

Merhaba,

Sorunu tekrar eden minimum proje paylaşmanız mümkün müdür?

Kod olmadan sorduğunuz soruya yardımcı olmak maalesef mümkün değil.
ercan_elo_bil
Üye
Mesajlar: 26
Kayıt: 11 Tem 2014 11:13

Re: "invalid class typecast" ObjectToJsonString

Mesaj gönderen ercan_elo_bil »

merhaba,
sorunu buldum class in icinede boolean değişken olduğunda dll den exe gönderilen ObjectToJsonString ile json stringe cevirdiğimde sorun olmadı,
ama boolean değişken var ise sorun.
birde tdatetime larda sorun var dll den exe giden class tdatetime argümenini json a cevirirken double değişken olarak ceviriyor.

bu iki durum mevcut.
Garbage Collector, Delphi çöp üretmez çöpü bulup temizlemeye asla gerek yoktur... :D
ertank
Kıdemli Üye
Mesajlar: 1650
Kayıt: 12 Eyl 2015 12:45

Re: "invalid class typecast" ObjectToJsonString

Mesaj gönderen ertank »

Anladığım kadarıyla DLL <-> Uygulama arasında JSON string iletişimi sağlıyorsunuz.

Benim nacizane tavsiyem class ile hiç uğraşmayın. mORMot framework içindeki record tabanlı json rutinlerini kullanın. Sitede arama yapar iseniz (mormot kelimesini aramanız yeterli olsa gerek) kullanımına ilişkin daha önce birçok örnek yazdım.

Kullanımı daha pratik, dönüşüm hızı çok yüksek ve benim bugüne kadar iki istisna haricinde başka bir çözüm kullanmama gerek kalmadı.

mORMot kütüphanesi boolean değerleri metin olarak true/false olarak serialize eder ve geri boolean değişkene okuyabilir.
mORMot kütüphanesi datetime değerleri ISO8601 formatında (Örn: 2021-03-06T12:10:05.123Z) serialize eder ve geriye okuyabilir.
ercan_elo_bil
Üye
Mesajlar: 26
Kayıt: 11 Tem 2014 11:13

Re: "invalid class typecast" ObjectToJsonString

Mesaj gönderen ercan_elo_bil »

ertank yazdı: 06 Mar 2021 03:33 Anladığım kadarıyla DLL <-> Uygulama arasında JSON string iletişimi sağlıyorsunuz.

Benim nacizane tavsiyem class ile hiç uğraşmayın. mORMot framework içindeki record tabanlı json rutinlerini kullanın. Sitede arama yapar iseniz (mormot kelimesini aramanız yeterli olsa gerek) kullanımına ilişkin daha önce birçok örnek yazdım.

Kullanımı daha pratik, dönüşüm hızı çok yüksek ve benim bugüne kadar iki istisna haricinde başka bir çözüm kullanmama gerek kalmadı.

mORMot kütüphanesi boolean değerleri metin olarak true/false olarak serialize eder ve geri boolean değişkene okuyabilir.
mORMot kütüphanesi datetime değerleri ISO8601 formatında (Örn: 2021-03-06T12:10:05.123Z) serialize eder ve geriye okuyabilir.
Mmerhaba,
dll ile uygulama arasında class kullanıyorum, uygulamadan class gönderip dll den class alıyorum burada sorun yok.

sorun; dll den gelen class ı json a cevirmekte (json a cevirme amacım dosyaya kayıt) aynı zamanda uygulamadan dll e giden class icinde aynı şey söz konusu.


Dll kodunu direk uygulamaya gömer isem hiçbir sorun yok (invalid class typecast gibi sorun yok). Ama ne zaman uygulamadan dll giden class olur ise ve bunu dll de json a cevirsem (ObjectToJsonString) ile o zaman boolean değişkenlerini tanımıyor(invalid class typecast) veya tdatetime leri floata ceviriyor "tarih":1223.123123 gibi.

not: record kullanmıyorum.
Garbage Collector, Delphi çöp üretmez çöpü bulup temizlemeye asla gerek yoktur... :D
Cevapla