[fpc-pascal] Null values with JSON RPC
Michael Van Canneyt
michael at freepascal.org
Fri Aug 7 16:09:31 CEST 2020
On Fri, 7 Aug 2020, Ryan Joseph via fpc-pascal wrote:
>
>
>> On Aug 7, 2020, at 8:31 PM, Michael Van Canneyt <michael at freepascal.org> wrote:
>>
>> An option to allow nulls to be detected and handles would of course be a nice
>> addition.
>>
>> For the time being, you can just set jdoIgnorePropertyErrors on the destreamer options.
>
> Quick check right now and setting that option still seems to give the same
> error. I'll look into it more tomorrow when I have some time. There's
> seems to be a DoRestoreProperty override which could be interesting but
> I'm not sure if the error is trigger before here or not.
try
B:=Not Assigned(FOnRestoreProp);
If Not B then
begin
FOnRestoreProp(Self,AObject,PropInfo,PropData,B);
If B then
exit;
end;
DoRestoreProperty(AObject,PropInfo,PropData);
except
On E : Exception do
If Assigned(FOnPropError) then
begin
B:=False;
FOnPropError(Self,AObject,PropInfo,PropData,E,B);
If Not B then
Raise;
end
else if Not (jdoIgnorePropertyErrors in Options) then
Raise;
end;
The exception will still be raised, but should be caught.
I added a jdoIgnoreNulls which changes the above to:
if (PropData.JSONType=jtNull) then
if Not (jdoIgnoreNulls in Options) then
DoRestoreProperty(AObject,PropInfo,PropData);
Committed in SVN. I will still add a jsoNullClearsProperty which will clear
the property using the 'natural' empty value (0, Nil, '' etc).
Michael.
More information about the fpc-pascal
mailing list