Quick.Serializer.Intf.pas 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. unit Quick.Serializer.Intf;
  2. interface
  3. uses
  4. SysUtils,
  5. {$IFNDEF FPC}
  6. rtti;
  7. {$ELSE}
  8. Rtti,
  9. rttiutils;
  10. {$ENDIF}
  11. type
  12. TSerializerOptions = class
  13. private
  14. fUseEnumNames : Boolean;
  15. fUseJsonCaseSense : Boolean;
  16. fUseBase64Stream : Boolean;
  17. fUseNullStringsAsEmpty : Boolean;
  18. fUseGUIDWithBrackets: Boolean;
  19. fUseGUIDLowercase: Boolean;
  20. public
  21. property UseEnumNames : Boolean read fUseEnumNames write fUseEnumNames;
  22. property UseJsonCaseSense : Boolean read fUseJsonCaseSense write fUseJsonCaseSense;
  23. property UseBase64Stream : Boolean read fUseBase64Stream write fUseBase64Stream;
  24. property UseNullStringsAsEmpty : Boolean read fUseNullStringsAsEmpty write fUseNullStringsAsEmpty;
  25. property UseGUIDWithBrackets : Boolean read fUseGUIDWithBrackets write fUseGUIDWithBrackets;
  26. property UseGUIDLowercase : Boolean read fUseGUIDLowercase write fUseGUIDLowercase;
  27. end;
  28. ISerializer = interface
  29. ['{CA26F7AE-F1FE-41BE-9C23-723A687F60D1}']
  30. function JsonToObject(aType: TClass; const aJson: string): TObject; overload;
  31. function JsonToObject(aObject: TObject; const aJson: string): TObject; overload;
  32. function ObjectToJson(aObject : TObject; aIndent : Boolean = False): string;
  33. function ValueToJson(const aValue : TValue; aIndent : Boolean = False) : string;
  34. function Options : TSerializerOptions;
  35. end;
  36. implementation
  37. end.