1
1
{ ***************************************************************************
2
2
3
- Copyright (c) 2015-2018 Kike Pérez
3
+ Copyright (c) 2015-2020 Kike Pérez
4
4
5
5
Unit : Quick.JSON.Helper
6
6
Description : Utils for working with JSON
7
7
Author : Kike Pérez
8
8
Version : 1.1
9
9
Created : 27/01/2017
10
- Modified : 09/05/2018
10
+ Modified : 16/01/2020
11
11
12
12
This file is part of QuickLib: https://github.com/exilon/QuickLib
13
13
@@ -36,17 +36,7 @@ interface
36
36
uses
37
37
Classes,
38
38
SysUtils,
39
- { $IFDEF DELPHIRX102_UP}
40
- JSON.Types,
41
- REST.Json,
42
- System.JSON,
43
- JSON.Serializers,
44
- { $ELSE}
45
- System.JSON,
46
- REST.JSON,
47
- Rest.Json.Types,
48
- { $ENDIF}
49
- Quick.Json.Utils;
39
+ Quick.Json.Serializer;
50
40
51
41
type
52
42
TObjectHelper = class helper for TObject
@@ -65,39 +55,32 @@ TObjectHelper = class helper for TObject
65
55
implementation
66
56
67
57
function TObjectHelper.ToJSON : string;
68
- { $IFDEF DELPHIRX102_UP}
69
58
var
70
- Serializer : TJsonSerializer;
71
- { $ENDIF}
59
+ Serializer : TJsonSerializer;
72
60
begin
73
61
Result := ' ' ;
74
62
try
75
- { $IFDEF DELPHIRX102_UP}
76
- Serializer := TJsonSerializer.Create;
77
- try
78
- if GlobalJsonIdenter then Serializer.Formatting := TJsonFormatting.Indented;
79
- Result := Serializer.Serialize<TObject>(Self);
80
- finally
81
- Serializer.Free;
82
- end ;
83
- { $ELSE}
84
- Result := TJson.ObjectToJsonString(Self);
85
- { $ENDIF}
63
+ Serializer := TJsonSerializer.Create(TSerializeLevel.{ $IFDEF FPC} slPublishedProperty{ $ELSE} slPublicProperty{ $ENDIF} ,True);
64
+ try
65
+ Result := Serializer.ObjectToJson(Self,GlobalJsonIdenter);
66
+ finally
67
+ Serializer.Free;
68
+ end ;
86
69
except
87
70
on e : Exception do raise Exception.Create(e.Message);
88
71
end ;
89
72
end ;
90
73
91
74
procedure TObjectHelper.FromJson (const json :string);
92
75
var
93
- jObj : TJSONObject ;
76
+ Serializer : TJsonSerializer ;
94
77
begin
95
78
try
96
- jObj := TJSonObject.ParseJSONValue(json,true) as TJSONObject ;
79
+ Serializer := TJsonSerializer.Create(TSerializeLevel. { $IFDEF FPC } slPublishedProperty { $ELSE } slPublicProperty { $ENDIF } ,True) ;
97
80
try
98
- TJson .JsonToObject(self,jObj );
81
+ Serializer .JsonToObject(Self,json );
99
82
finally
100
- jObj .Free;
83
+ Serializer .Free;
101
84
end ;
102
85
except
103
86
on e : Exception do raise Exception.Create(e.Message);
0 commit comments