|
@@ -1035,14 +1035,13 @@ var
|
|
|
|
|
|
begin
|
|
begin
|
|
lValue:=FindValue(aPath);
|
|
lValue:=FindValue(aPath);
|
|
- Result:=Assigned(lValue);
|
|
|
|
|
|
+ Result:=Assigned(lValue) and not (lValue is TJSONNull);
|
|
if Result then
|
|
if Result then
|
|
Try
|
|
Try
|
|
aValue:=lValue.specialize AsType<T>;
|
|
aValue:=lValue.specialize AsType<T>;
|
|
except
|
|
except
|
|
on E : Exception do
|
|
on E : Exception do
|
|
begin
|
|
begin
|
|
- Writeln('Err',E.Message);
|
|
|
|
Result:=False;
|
|
Result:=False;
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|
|
@@ -1067,6 +1066,8 @@ begin
|
|
lValue:=FindValue(aPath);
|
|
lValue:=FindValue(aPath);
|
|
if not Assigned(lValue) then
|
|
if not Assigned(lValue) then
|
|
Result:=aDefaultValue
|
|
Result:=aDefaultValue
|
|
|
|
+ else if lValue is TJSONNull then
|
|
|
|
+ Result:=aDefaultValue
|
|
else if not lValue.specialize TryGetValue<T>(Result) then
|
|
else if not lValue.specialize TryGetValue<T>(Result) then
|
|
Result:=aDefaultValue;
|
|
Result:=aDefaultValue;
|
|
end;
|
|
end;
|