![]() |
Serialisierung von Objekten
Hallo,
folgende Objektstruktur ist gegeben, die ich nun nach Json serialisieren möchte:
Code:
Mit
uses JSON, DBXJSON, DBXJSONReflect;
type TAdress = Class Name: String; Vorname: String; GebDat: TDate; end; TMyClass = class MyVar: Integer; MyVarStr: String; private FAdress: TAdress; FMyProperty1: Integer; FMyProperty2: String; procedure SetMyProperty1(const Value: Integer); procedure MyProcedure; function MyFunction: Boolean; procedure SetMyProperty2(const Value: String); public Constructor Create; destructor destroy; property MyProperty1: Integer read FMyProperty1 write SetMyProperty1; property MyProperty2: String read FMyProperty2 write SetMyProperty2; function getJson: String; end;
Code:
serialisiere ich das vollständige Objekt. Das funktioniert so weit gut.
function TMyClass.getJson: String;
var LMar : TJSONMarshal; jo :TJSONObject; begin LMar := TJSONMarshal.Create(); try Result := LMar.Marshal(self).ToString; //gesamte Object finally LMar.Free; end; Ich möchte jedoch nur das Objekt FAdress:TAdress serialisieren. Mit Result := LMar.Marshal(self.FAdress).ToString; //gesamte Object komme ich hier jedoch nicht weiter. Wie lässt sich das am besten lösen? Kann man weiterhin Records (TAdress = Record) serialisieren? Wie wäre dieses dann möglich? Für Tipps bedanke ich mich vorab! |
AW: Serialisierung von Objekten
Liste der Anhänge anzeigen (Anzahl: 1)
Moin...:P
..weil bald Weihnachten ist. 8-) Aus dem Fundus. :zwinker: TAdress rein...und nach dem Cast auf TAdress wieder TAdress wieder raus... |
AW: Serialisierung von Objekten
Vielen Dank, mit dem cast geht es also. Was wäre dann mit Records?
|
AW: Serialisierung von Objekten
Zitat:
![]() Ob man auch nur ein Record, das nicht in einer Klasse verpackt ist, serialisieren kann, weiß ich nicht. Zumindest erwartet die Marshalling-Klasse ein Objekt als Parameter. Ich denke aber, dass es dir genau darum geht, oder? |
AW: Serialisierung von Objekten
Ja den Link zu den benutzerdefinierten Konverter hatte ich bereits gefunden.
Wenn ein Record in eine Klasse gepackt ist, funktioniert es auch. (Wird als Array serialisiert). Ich hatte jedoch keine Möglichkeit gefunden direkt einen Record zu serialisieren, hatte hier nur die Erwartungshaltung, dass es dann auch gehen sollte... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:51 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz