This commit is contained in:
Michael Schimmel
2025-10-31 18:12:53 +01:00
parent 0526ec8a24
commit 8abec8e98f
8 changed files with 199 additions and 106 deletions
+3 -3
View File
@@ -18,7 +18,7 @@ type
// Creates a JSON definition string from a record type info.
class function RecordDefinitionToJson<T: record>: string; static;
// Creates a record definition from a JSON string.
class function JsonToRecordDefinition(const AJson: string): TScalarRecordDefinition; static;
class function JsonToRecordDefinition(const AJson: string): IScalarRecordDefinition; static;
end;
implementation
@@ -30,7 +30,7 @@ uses
{ TRttiAstHelper }
class function TRttiAstHelper.JsonToRecordDefinition(const AJson: string): TScalarRecordDefinition;
class function TRttiAstHelper.JsonToRecordDefinition(const AJson: string): IScalarRecordDefinition;
var
jsonValue: TJSONValue;
fieldsArray: TJSONArray;
@@ -63,7 +63,7 @@ begin
fields[i] := TScalarRecordField.Create(fieldKey, TScalar.TKind(GetEnumValue(TypeInfo(TScalar.TKind), kindStr)));
end;
Result := TScalarRecordDefinition.Create(fields);
Result := TScalarRecordRegistry.Intern(fields);
finally
jsonValue.Free;
end;