Bei meinen JSON Schnittstellen mache ich ähnliches. Erstmal alles in Objekt Form bringen und dann diese Objekte verarbeiten. Dabei dienen diese Objekte nur der temporären Datenhaltung und zur Typumwandlung. Mit Enums verfahre ich so:
Delphi-Quellcode:
// uses System.RTTI, System.TypInfo;
// FFeld = String
// TEnum = (enEins, enZwei, enDrei);
{ Getter }
tmpType := TypeInfo(TEnum); // tmpType = PTypeInfo
Result := TValue.FromOrdinal(tmpType, GetEnumValue(tmpType, 'en'+ FFeld)).AsType<TEnum>;
{ Setter }
FFeld := TValue.From<TEnum>(Value).ToString; // Value = TEnum
FFeld := Copy(FFeld, 3, Length(FFeld));