Wie bekomme ich das Unmarshalling in Delphi mit JSON hin?
Ich schaffe es, originäre Datentypen wie Strings auszulesen.
Beispiel:
JV := TJSONObject.ParseJSONValue(strJSON);
strPfadArtikel := 'fields.Artikel.fields.FItems[0].fields.ArtikelBez1';
strTest := JV.GetValue<String>(strPfadArtikel);
Ich scheitere jedoch daran ein ganzes Objekt auszulesen und ein den betreffenden Datentypen zu konvertieren.
Das funktioniert nicht:
JV := TJSONObject.ParseJSONValue(strJSON);
strPfadArtikel := 'fields.Artikel.fields.FItems[0]';
Artikel := JV.GetValue<TRetourArtikel>(strPfadArtikel);
FItems[0] ist ein serialisiertes Object vom Typ TRetourArtikel.
Wie bekomme ich das in Gang gesetzt?
Der nächste Schritt wäre dann, herauszufinden, wie ich ein Array von Objekten auslesen kann, also die Liste an Artikeln ist vom Typ TList<TRetourArtikel>.
Es wäre nett, wenn mir jemand auf die Sprünge helfen würde.
Mein eigentliches Problem ist, dass Objekte geschachtelt sind und Memberojekte nil gelassen werden.
Liste von Retouren → Retoure → Liste von Artikeln → Artikel ...
2 Antworten
kannst du was mit dem beispiel anfangen ?
https://docwiki.embarcadero.com/RADStudio/Sydney/en/Serializing_User_Objects
bzw sonst unten bei See Also weiter gucken .
Sieht so aus, als wäre es das. Ich konnte den Code nicht auf mein Praxisbeispiel ummünzen, bzw. habe ich auf halben Weg gemerkt, wie es einfacher geht:
Mir liegen die Infos in der DB vor, also brauche ich nicht die ganzen Objekte speichern. Es genügt, die IDs der Objekte zu speichern.
Hier hab ich auch noch mal marshal un/de marschal
https://www.delphipower.xyz/handbook_2010/streaming_objects_to_json.html
http://www.danieleteti.it/post/custom-marshallingunmarshalling-in-delphi-2010/