#1 2025-04-20 12:59:26

ertank
Member
Registered: 2016-03-16
Posts: 179

Json serialization of enums

Hello,

I'm using Delphi and mORMot2 from 13th of January 2025 11:55 AM commit.

When serializing I would like to have enums as numbers. Is there a way to do that?
Sample code:

type
  TTestEnum = (a=3, b=7, c=13);
  TTestRec = packed record
    aint: Integer;
    aenum: TTestEnum;
  end;

procedure TForm1.Button1Click(Sender: TObject);
var
  LRec: TTestRec;
  LJson: string;
begin
  LRec.aint := 99;
  LRec.aenum := TTestEnum.b;
  LJson := string(mormot.core.json.RecordSaveJson(LRec, TypeInfo(TTestRec)));
  // serialized as '{"aint":99,"aenum":"07"}'
end;

Thanks & Regards,
Ertan

Offline

#2 2025-04-21 10:28:20

ab
Administrator
From: France
Registered: 2010-06-21
Posts: 15,005
Website

Re: Json serialization of enums

Enums with sparse values (like =3 or =7) are unsupported.

Offline

Board footer

Powered by FluxBB