@@ -1936,9 +1936,9 @@ TRttiJson = class(TRttiCustom)
1936
1936
Options: pointer{ PDocVariantOptions} = nil ): PtrInt; override;
1937
1937
// / unserialize some JSON input into Data^ - warning: Json is modified in-place
1938
1938
// - as used by LoadJson() and similar high-level functions
1939
- procedure ValueLoadJson (Data: pointer; var Json: PUtf8Char; EndOfObject: PUtf8Char;
1939
+ function ValueLoadJson (Data: pointer; var Json: PUtf8Char; EndOfObject: PUtf8Char;
1940
1940
ParserOptions: TJsonParserOptions; CustomVariantOptions: PDocVariantOptions;
1941
- ObjectListItemClass: TClass; Interning: TRawUtf8Interning);
1941
+ ObjectListItemClass: TClass; Interning: TRawUtf8Interning): PUtf8Char ;
1942
1942
// / how many iterations could be done one a given value
1943
1943
// - returns -1 if the value is not iterable, or length(DynArray) or
1944
1944
// TRawUtf8List.Count or TList.Count or TSynList.Count
@@ -10877,10 +10877,10 @@ function TRttiJson.ValueToVariant(Data: pointer; out Dest: TVarData;
10877
10877
result := Cache.Size;
10878
10878
end ;
10879
10879
10880
- procedure TRttiJson.ValueLoadJson (Data: pointer; var Json: PUtf8Char;
10880
+ function TRttiJson.ValueLoadJson (Data: pointer; var Json: PUtf8Char;
10881
10881
EndOfObject: PUtf8Char; ParserOptions: TJsonParserOptions;
10882
10882
CustomVariantOptions: PDocVariantOptions; ObjectListItemClass: TClass;
10883
- Interning: TRawUtf8Interning);
10883
+ Interning: TRawUtf8Interning): PUtf8Char ;
10884
10884
var
10885
10885
ctxt: TJsonParserContext;
10886
10886
begin
@@ -10902,9 +10902,13 @@ procedure TRttiJson.ValueLoadJson(Data: pointer; var Json: PUtf8Char;
10902
10902
Json := ctxt.Json
10903
10903
else
10904
10904
Json := nil ;
10905
+ result := ctxt.Json;
10905
10906
end
10906
10907
else
10908
+ begin
10907
10909
Json := nil ;
10910
+ result := nil ;
10911
+ end ;
10908
10912
end ;
10909
10913
10910
10914
function TRttiJson.ValueIterateCount (Data: pointer): integer;
@@ -11353,7 +11357,7 @@ procedure _GetDataFromJson(Data: pointer; var Json: PUtf8Char;
11353
11357
CustomVariantOptions: PDocVariantOptions; Tolerant: boolean;
11354
11358
Interning: TRawUtf8InterningAbstract);
11355
11359
begin
11356
- (Rtti as TRttiJson ).ValueLoadJson(Data, Json, EndOfObject,
11360
+ TRttiJson (Rtti).ValueLoadJson(Data, Json, EndOfObject,
11357
11361
JSONPARSER_DEFAULTORTOLERANTOPTIONS[Tolerant],
11358
11362
CustomVariantOptions, nil , TRawUtf8Interning(Interning));
11359
11363
end ;
0 commit comments