AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi 12 JSON Deserialisierungsbug

Ein Thema von BastiFantasti · begonnen am 8. Feb 2024 · letzter Beitrag vom 9. Feb 2024
Antwort Antwort
BastiFantasti

Registriert seit: 5. Nov 2014
Ort: Baden Württemberg
133 Beiträge
 
Delphi 11 Alexandria
 
#1

Delphi 12 JSON Deserialisierungsbug

  Alt 8. Feb 2024, 11:30
Delphi-Version: 12 Athens
Hallo zusammen,

kann jemand dieses Problem bestätigen oder weiß sogar eine Lösung?
Wenn ich unter Delphi 12 (inkl. Patch 1) versuche ein Objekt aus einem Jsonstring zu deserialiseren (Funktion aus rest.json) kommt eine Schutzverletzung:

Code:
  fo := TJson.JsonToObject<TFormatting>(jdo_arr.O[iter].ToJSON());
unter Delphi 11 funktioniert der gleiche Aufruf problemlos und erzeugt das Objekt wie gewünscht.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.084 Beiträge
 
Delphi 12 Athens
 
#2

AW: Delphi 12 JSON Deserialisierungsbug

  Alt 8. Feb 2024, 11:37
Mindestens einen aktuellen Bug gibt es
https://www.delphipraxis.net/214595-...ml#post1533064

und noch ein paar
https://quality.embarcadero.com/brow...updated%20DESC


Wie wäre es, wenn du etwas mehr infos geben würstest?
* der Stacktrace von der Exception
* sicher, dass es vom JSON und nicht vom jdo_arr.O[iter] kommt?
* und vielleich sagen, ob irgendwas "Exotisches" an deinem TFormatting existiert?
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
BastiFantasti

Registriert seit: 5. Nov 2014
Ort: Baden Württemberg
133 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Delphi 12 JSON Deserialisierungsbug

  Alt 8. Feb 2024, 12:14
Hi und danke für die schnelle Rückmeldung.

Du hast recht, mehr Info macht es leichter

Also ja, das jdo (JsonDataObjects) passt soweit.
Ich habe das Arrayelement mit .tojson() rausgeholt und in eine Datei weggeschrieben.
Die Struktur ist identisch wie bei der Implementierung mit Delphi 11

Der Fehler tritt bei Kompilieren mit Win32 und Win64 auf

Hier noch die Meldung der Exception:

Code:
---------------------------
GExperts Debugger Exception Notification
---------------------------
Project ProfDIA_LA.exe raised exception class EAccessViolation with message 'Access violation at address 00000000010FA609. Read of address 0000000000000000'.
---------------------------
[&Filter ...] [Ignore &All this Session] [&Break] [Additional &Info] [&Continue]
---------------------------
ThreadId=19924
ProcessId=15
ThreadName=""
ExceptionMessage="Access violation at address 00000000010FA609. Read of address 0000000000000000"
ExceptionName="EAccessViolation"
ExceptionDisplayName="$C0000005"
ExceptionAddress=010FA609
FileName=<not available>
LineNumber=<not available>

---------------------------
Wie gesagt, identischer API Aufruf, identisches Json Objekt unter Delphi 11 funktioniert.


Ich hab das Problem auch noch in ein Testprojekt extrahiert.
Siehe Anhang
Angehängte Dateien
Dateityp: zip Delphi12Json.zip (74,1 KB, 10x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.455 Beiträge
 
Delphi 12 Athens
 
#4

AW: Delphi 12 JSON Deserialisierungsbug

  Alt 8. Feb 2024, 12:21
Problem ist hier das fehlende Feld group zusammen mit dem Bug RSP-43488

Als Workaround genügt es in TFormatting ein Feld FGroup: TObject; zu ergänzen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
BastiFantasti

Registriert seit: 5. Nov 2014
Ort: Baden Württemberg
133 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Delphi 12 JSON Deserialisierungsbug

  Alt 8. Feb 2024, 12:56
Problem ist hier das fehlende Feld group zusammen mit dem Bug RSP-43488

Als Workaround genügt es in TFormatting ein Feld FGroup: TObject; zu ergänzen.

Danke für die Antwort. Wird sofort getestet
  Mit Zitat antworten Zitat
BastiFantasti

Registriert seit: 5. Nov 2014
Ort: Baden Württemberg
133 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Delphi 12 JSON Deserialisierungsbug

  Alt 8. Feb 2024, 12:56
Ich habe scheinbar keinen Account / Zugriff auf das Jira von Embarcadero.
Benötigt man da einen separaten Account? Mein normaler Embarcadero Account funktioniert nicht.
  Mit Zitat antworten Zitat
peterbelow

Registriert seit: 12. Jan 2019
Ort: Hessen
702 Beiträge
 
Delphi 12 Athens
 
#7

AW: Delphi 12 JSON Deserialisierungsbug

  Alt 8. Feb 2024, 13:57
Ich habe scheinbar keinen Account / Zugriff auf das Jira von Embarcadero.
Benötigt man da einen separaten Account? Mein normaler Embarcadero Account funktioniert nicht.
QUality portal ist im Umbau, die alte Onlineversion ist schon read-only aber die neue ist noch nicht freigegeben. Da gab's kürzlich einen Blog zu.
Peter Below
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.455 Beiträge
 
Delphi 12 Athens
 
#8

AW: Delphi 12 JSON Deserialisierungsbug

  Alt 8. Feb 2024, 14:08
Aber Ansehen sollte noch gehen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.084 Beiträge
 
Delphi 12 Athens
 
#9

AW: Delphi 12 JSON Deserialisierungsbug

  Alt 8. Feb 2024, 14:16
Loginname benutzt, nicht die Mailadresse, für das Login?

Name steht dort https://my.embarcadero.com/#userProfile drin, falls vergessen.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
BastiFantasti

Registriert seit: 5. Nov 2014
Ort: Baden Württemberg
133 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Delphi 12 JSON Deserialisierungsbug

  Alt 9. Feb 2024, 09:37
Guten Morgen zusammen,

mit dem Benutzernamen anstelle der E Mail Adresse hat es tatsächlich funktioniert.

Vielen Dank und viele Grüße
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:56 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