Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi DMVC Mapper.ObjectToJSONObjectString und StringList? Array? (https://www.delphipraxis.net/191597-dmvc-mapper-objecttojsonobjectstring-und-stringlist-array.html)

Necrotarch 31. Jan 2017 18:44

DMVC Mapper.ObjectToJSONObjectString und StringList? Array?
 
Ich habe das folgende Objekt und versuch es mit dem DMVC-Framework zu serialisieren und de-serialisieren.

Delphi-Quellcode:
TCardsAgainstHumanityJSON = class
private
  FBlackCards : TBlackCardsList;
  FDescription : string;
  FExpansion  : Boolean;
  FName       : string;
  FWatermark  : string;
  FWhiteCards : TList<String>;
public
  [MapperListOf(TBlackCards)]
  property blackCards : TBlackCardsList read FBlackCards write FBlackCards;
  property description : string         read FDescription write FDescription;
  property expansion  : Boolean        read FExpansion  write FExpansion;
  property name       : string         read FName       write FName;
  property watermark  : string         read FWatermark  write FWatermark;
  property whiteCards : TList<string>  read FWhiteCards write FWhiteCards;

  constructor Create;
  destructor Destroy; override;
  function ToJsonString: string;
  class function FromJsonString(const JsonString: string): TCardsAgainstHumanityJSON;
end;

{...}

constructor TCardsAgainstHumanityJSON.Create;
begin
  Inherited;
  FBlackCards := TBlackCardsList.Create(True);
  FWhiteCards := TList<String>.Create();
end;

destructor TCardsAgainstHumanityJSON.Destroy;

begin
  FBlackCards.Free;
  FWhiteCards.Free;

  inherited;
end;

function TCardsAgainstHumanityJSON.ToJsonString: string;
begin
  Result := Mapper.ObjectToJSONObjectString(Self);
end;

class function TCardsAgainstHumanityJSON.FromJsonString(const JsonString: string): TCardsAgainstHumanityJSON;
begin
  Result := Mapper.JSONObjectStringToObject<TCardsAgainstHumanityJSON>(JsonString);
end;
FromJsonString klappt einwandfrei. Mapper.ObjectToJSONObjectString versucht im inneren jedoch whiteCards als Objektliste zu behandeln, das rennt jedoch in eine ungültige Typumwandlung. Ich hab auch schon versucht whiteCards als TArray<string> zu deklarieren, nur befüllt JSONObjectStringToObject das leider nicht. Muss ich vlt. noch ein Attribut setzen oder übersehe ich noch etwas?


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:32 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz