Delphi-PRAXiS
Seite 1 von 3  1 23   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   TJson.JsonToObject funktioniert unter Delphi 10.3 nicht mehr wie unter 10.2 (https://www.delphipraxis.net/198878-tjson-jsontoobject-funktioniert-unter-delphi-10-3-nicht-mehr-wie-unter-10-2-a.html)

sh17 7. Dez 2018 08:52

TJson.JsonToObject funktioniert unter Delphi 10.3 nicht mehr wie unter 10.2
 
Hi, ich nutze bisher immer TJson.JsonToObject und TJson.ObjectToJsonString um Objekte serialisieren und deserialisieren zu können.

Seit Delphi 10.3 kann ich mein Objekt aber nicht mehr laden und speichern. Es kommen folgende Meldungen:

... TJson.JsonToObject<TMyObjList>(hstr);
EConversionError "Value 0 cannot be converted into Pointer. You ma use a user-defined reverter"


... TJson.ObjectToJsonString(myobj);
EConversionError "Type tkPointer is not currently supportet"

Hat sich hier etwas geändert, weiß jemand etwas?

Das Objekt ist relativ simpel.

Code:
  TMyObj = class(TObject)
  private
    FDescription: String;
    FSubject: String;
    FBody: String;
  published
    property Description : String read FDescription write FDescription;
    property Subject : String read FSubject write FSubject;
    property Body : String read FBody write FBody;
  end;
  TMyObjList = class(TObjectList<TMyObj>);

sh17 7. Dez 2018 08:58

AW: TJson.JsonToObject funktioniert unter Delphi 10.3 nicht mehr wie unter 10.2
 
OK, verdammt

https://community.embarcadero.com/fo...7-rio-and-json

https://quality.embarcadero.com/browse/RSP-21685

Rollo62 7. Dez 2018 08:59

AW: TJson.JsonToObject funktioniert unter Delphi 10.3 nicht mehr wie unter 10.2
 
Ich benutze dafür TJSONMarshal, das funktioniert vor und nach Rio:

Delphi-Quellcode:
function TJson_Marshal_Base<T>.DoMarshal(const AMar : TJSONMarshal) : String;
var
  LValue: TJSONValue;

begin
    LValue := AMar.Marshal( Self );
    try
        Result := LValue.ToString;
    finally
        LValue.Free; // New: LValue temp. obj. must be freed
    end;

end;


function TJson_Marshal_Base<T>.Internal_ToString : String;
var
  LMar : TJSONMarshal;

begin
  LMar := TJSONMarshal.Create(TJSONConverter.Create, True);

  try
      Result := DoMarshal( LMar ); // To Avoid uncaught exceptions

  finally
      LMar.Free;
  end;

end;
Rollo

rd3 10. Dez 2018 15:23

AW: TJson.JsonToObject funktioniert unter Delphi 10.3 nicht mehr wie unter 10.2
 
@sh17 Hast du eine Workaround dafür? Ich habe das gleiche Problem.

sh17 10. Dez 2018 15:29

AW: TJson.JsonToObject funktioniert unter Delphi 10.3 nicht mehr wie unter 10.2
 
ne, bin etwas sauer auf Emba, wie kann so etwas passieren? Da verzichtet man schon auf externe libs und dann sowas. Hab jetzt allen JSON-Krempel rausgeworfen und mach die Persistenz wieder mit XML (OXML-lib), klappt wunderbar.

rd3 10. Dez 2018 15:35

AW: TJson.JsonToObject funktioniert unter Delphi 10.3 nicht mehr wie unter 10.2
 
Mist, kann darauf nicht verzichten. Und mit einem eigenen Marshaller, der implizit die JSON-Libraries benutzt, klappt es auch nicht. K*cke!

rd3 10. Dez 2018 15:39

AW: TJson.JsonToObject funktioniert unter Delphi 10.3 nicht mehr wie unter 10.2
 
Das ist immer so. Ob das die verkackten Reports (damals, QuickReport, Rave usw. Dann Unicode usw.) sind oder sonst was. In komplexen Applikationen ist fast nie was kompatibel mit einer neuen Version. Immer und immer wieder. Wieso ich Idiot nicht endlich bei Visual Studio und .NET bleibe...?! Bei so viel Bugs und Hinterherhinkerei hilft auch langsam eine viel zu spät kommende Community-Edition nicht mehr...

sh17 10. Dez 2018 15:52

AW: TJson.JsonToObject funktioniert unter Delphi 10.3 nicht mehr wie unter 10.2
 
Verständlich
Deswegen Pro Open Source RTL/VCL

rd3 10. Dez 2018 15:57

AW: TJson.JsonToObject funktioniert unter Delphi 10.3 nicht mehr wie unter 10.2
 
Naja, in kommerziellen Anwendungen benutzen wir kein Open-Source. Wir halten 3rd-Parties auch in Grenzen. Wir benutzen DevExpress. Es geht auch um Support, worauf du im Open-Source-Bereich lange warten kannst - manchmal jedenfalls.

sh17 10. Dez 2018 16:12

AW: TJson.JsonToObject funktioniert unter Delphi 10.3 nicht mehr wie unter 10.2
 
Ich meinte auch eher so wie das .net Framework Open Source ist, schon unter Betreuung von Emba, da würden solche Fehler viel eher entdeckt und behoben werden können und nicht erst zur Auslieferung der IDE. Aber das ist ein anderes Thema.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:36 Uhr.
Seite 1 von 3  1 23   

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