|
@@ -7,7 +7,7 @@
|
|
Author : Kike Pérez
|
|
Author : Kike Pérez
|
|
Version : 1.8
|
|
Version : 1.8
|
|
Created : 21/05/2018
|
|
Created : 21/05/2018
|
|
- Modified : 01/04/2019
|
|
|
|
|
|
+ Modified : 12/04/2019
|
|
|
|
|
|
This file is part of QuickLib: https://github.com/exilon/QuickLib
|
|
This file is part of QuickLib: https://github.com/exilon/QuickLib
|
|
|
|
|
|
@@ -92,8 +92,6 @@ type
|
|
|
|
|
|
TSerializeLevel = (slPublicProperty, slPublishedProperty);
|
|
TSerializeLevel = (slPublicProperty, slPublishedProperty);
|
|
|
|
|
|
- PValue = ^TValue;
|
|
|
|
-
|
|
|
|
TRTTIJson = class
|
|
TRTTIJson = class
|
|
private
|
|
private
|
|
fSerializeLevel : TSerializeLevel;
|
|
fSerializeLevel : TSerializeLevel;
|
|
@@ -374,7 +372,6 @@ begin
|
|
else
|
|
else
|
|
begin
|
|
begin
|
|
//rValue := DeserializeType(aObject,rField.FieldType.TypeKind,rField.FieldType.Handle,member.ToJson);
|
|
//rValue := DeserializeType(aObject,rField.FieldType.TypeKind,rField.FieldType.Handle,member.ToJson);
|
|
- {$IFNDEF FPC}
|
|
|
|
//avoid return unicode escaped chars if string
|
|
//avoid return unicode escaped chars if string
|
|
if rField.FieldType.TypeKind in [tkString, tkLString, tkWString, tkUString] then
|
|
if rField.FieldType.TypeKind in [tkString, tkLString, tkWString, tkUString] then
|
|
{$IFDEF DELPHIRX103_UP}
|
|
{$IFDEF DELPHIRX103_UP}
|
|
@@ -383,9 +380,6 @@ begin
|
|
rValue := DeserializeType(aObject,rField.FieldType.TypeKind,rField.FieldType.Handle,member.JsonString.ToString)
|
|
rValue := DeserializeType(aObject,rField.FieldType.TypeKind,rField.FieldType.Handle,member.JsonString.ToString)
|
|
{$ENDIF}
|
|
{$ENDIF}
|
|
else rValue := DeserializeType(aObject,rField.FieldType.TypeKind,rField.FieldType.Handle,member.ToJSON);
|
|
else rValue := DeserializeType(aObject,rField.FieldType.TypeKind,rField.FieldType.Handle,member.ToJSON);
|
|
- {$ELSE}
|
|
|
|
- rValue := DeserializeType(aObject,rField.FieldType.TypeKind,aName,member.ToJSON);
|
|
|
|
- {$ENDIF}
|
|
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|
|
if not rValue.IsEmpty then rField.SetValue(aRecord.GetReferenceToRawData,rValue);
|
|
if not rValue.IsEmpty then rField.SetValue(aRecord.GetReferenceToRawData,rValue);
|
|
@@ -1553,8 +1547,8 @@ var
|
|
begin
|
|
begin
|
|
json := fRTTIJson.Serialize(aObject);
|
|
json := fRTTIJson.Serialize(aObject);
|
|
try
|
|
try
|
|
- Result := json.ToJSON;
|
|
|
|
- if aIndent then Result := TJsonUtils.JsonFormat(Result);
|
|
|
|
|
|
+ if aIndent then Result := TJsonUtils.JsonFormat(json.ToJSON)
|
|
|
|
+ else Result := json.ToJSON;
|
|
finally
|
|
finally
|
|
json.Free;
|
|
json.Free;
|
|
end;
|
|
end;
|
|
@@ -1566,8 +1560,8 @@ var
|
|
begin
|
|
begin
|
|
json := fRTTIJson.Serialize(aObject);
|
|
json := fRTTIJson.Serialize(aObject);
|
|
try
|
|
try
|
|
- Result := json.ToString;
|
|
|
|
- if aIndent then Result := TJsonUtils.JsonFormat(Result);
|
|
|
|
|
|
+ if aIndent then Result := TJsonUtils.JsonFormat(json.ToString)
|
|
|
|
+ else Result := json.ToString;
|
|
finally
|
|
finally
|
|
json.Free;
|
|
json.Free;
|
|
end;
|
|
end;
|