Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   gibt es was wie RecordToJsonString (https://www.delphipraxis.net/211208-gibt-es-wie-recordtojsonstring.html)

charly52 13. Aug 2022 16:35

gibt es was wie RecordToJsonString
 
Hi all,

gibt es sowas wie

Delphi-Quellcode:
lValue:= TJSON.ObjectToJsonString(BDatClass, [joIndentCaseCamel, joDateIsUTC]);


beim Delphi auch für Records?
Ich würde gerne statt dem Objekt BDatClass eine Recordvariable verwenden können.
Oder gibt es sowas wie Uwe Raabe seine Helper die das können?

Charly

Uwe Raabe 13. Aug 2022 16:43

AW: gibt es was wie RecordToJsonString
 
Sowas wie einen
Delphi-Quellcode:
record
in Delphi gibt es in der JSON-Notation nicht. Ich vermute mal, du möchtest einen
Delphi-Quellcode:
record
wie eine
Delphi-Quellcode:
class
umgesetzt haben, aber das wird bislang von den Bordmitteln nicht unterstützt.

Union 13. Aug 2022 23:05

AW: gibt es was wie RecordToJsonString
 
Du könntest das in den meisten Fällen per RTTI behandeln. Ansonsten bestünde auch die Möglichkeit, den Record mit einer
Delphi-Quellcode:
function AsJSON : string
zu erweitern und dort das JSON zu erzeugen. Die kann gerne auch in einem Record helper sitzen.

charly52 15. Aug 2022 13:44

AW: gibt es was wie RecordToJsonString
 
Zitat:

Zitat von Union (Beitrag 1510108)
Ansonsten bestünde auch die Möglichkeit, den Record mit einer
Delphi-Quellcode:
function AsJSON : string
zu erweitern und dort das JSON zu erzeugen. Die kann gerne auch in einem Record helper sitzen.

Wie könnte das aussehen? Ich habe an der Front noch keinen blassen Schimmer.

Delphi-Quellcode:
type

TRec3 = record
          xyz: Integer;
          abc: boolean;
end;

TArr1  = Array[1..5] of TRec3;


TRecord2 = record
              int1: Integer;
              str3: String;
end;

TRecord = record
            str1: String;
            rec2: TRecord2;
            arr1: TArr1;
end;

var
  myRecVar : TRecord;
  myJSONString: String;
Könnte ich mit was von dir beschriebenen dann sowas nutzen?

Delphi-Quellcode:
myJSONString:= RecordToJsonString(myRecVar, ....);
und was muss in TRecord alless rein?
Gibt es dazu ein schönes Beispiel?

Danke

Union 15. Aug 2022 22:54

AW: gibt es was wie RecordToJsonString
 
Die Erweiterung von Records durch Methoden z.b. In denen baust Du dann dein JSON zusammen. Ist natürlich nur eine Einmal-Lösung, da Records keine Vererbung unterstützen.

Delphi-Quellcode:
TRec3 = record
    xyz: Integer;
    abc: boolean;
    function ToJSON : string;
  end;

  TArr1 = Array [1 .. 5] of TRec3;
  TRecord2 = record
     int1: Integer;
     str3: String;
     function ToJSON : string;
  end;

  TRecord = record
    str1: String;
    rec2: TRecord2;
    arr1: TArr1;
    function ToJSON : string;
  end;

charly52 16. Aug 2022 08:59

AW: gibt es was wie RecordToJsonString
 
Danke,


Charly


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:46 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