Kod: Tümünü seç
type
Tpersonel=class(Tobject)
private
public
Fadi :string;
Fsoyad :string;
FdogumTarih :TDate;
Fyas :string;
end;
Kod: Tümünü seç
for Field in Cxt.GetType(Tper.ClassType).GetFields do
begin
case (AnsiIndexText(Field.Name,['Fadi','Fsoyad','FdogumTarih','Fyas'])) of
0 :begin Tper.Fadi :=(TJSONPair(item).JsonValue.Value); end;
1 :begin Tper.Fsoyad :=(TJSONPair(item).JsonValue.Value); end;
2 :begin Tper.Fyas :=(TJSONPair(item).JsonValue.Value); end;
3 :begin Tper.Fyas :=(TJSONPair(item).JsonValue.Value); end;
end;
end;
amacım json türünden aldığım bir veriyi çözümleyerek sınıfın elemanlarına atamak. buraya kadar herşey güzel fakat bu projeyi büyütme aşamasına geldiğimde bu case ifadesinin içindeki veri bana sıkıntı yaratacak bunu daha kolay bir yöntemle çözme şansım varmıdır.
jsonmarshal ve tjsonconvertobject functionlarının üzerinde epey bir çalıştım ama tam anlamı ile çözemedim. kendim yazmak istedim. yardımlarınızı bekliyorum.