Forum: Netzwerke
by DeddyH,
21. Sep 2020
Ich mache das übrigens ähnlich, nur dass das bei mir normalerweise keine Klassen, sondern Records sind. Diese verfügen über eine Klassenfunktion FromJSON, welche ein TJSONObject übernimmt und einen befüllten Record zurückgibt.
Forum: Netzwerke
by DeddyH,
20. Sep 2020
Nunja, GetValue gibt einen TJSONValue zurück, welcher eine Klasse ist. Greift man auf den Wert einer nicht instanzierten Klasse zu, macht es eben Rumms, deshalb sind das keine Workarounds, sondern lediglich defensive Programmierung.
Forum: Netzwerke
by DeddyH,
20. Sep 2020
Versuch mal, ob das den Fehler (zumindest an der Stelle) behebt:
if Assigned(TJSONObject(Value).GetValue('name')) then
PlName := TJSONObject(Value).GetValue('name').Value;
Falls ja, könnte man über eine lokale Variable vom Typ TJSONValue nachdenken, die man zuerst befüllt, im Anschluss auf nil prüft und erst danach versucht, den Wert auszulesen.
Oder man benutzt die generische Funktion...