I am trying to check the googleapiconv "TGoogleRestDescription" object contents (which is descended from restbase TBaseObject) by using "SaveToJSON". But it always saves an empty object, even when the properties have values assigned to them (via LoadFromJSON).
https://gitlab.com/freepascal.org/fpc/source/-/blob/main/packages/googleapi/generator/googlediscoverytopas.pp#L303 SaveToJSON calls SavePropertyToJSON which checks IsPropertyModified: https://gitlab.com/freepascal.org/fpc/source/-/blob/main/packages/fcl-web/src/base/restbase.pp#L1310 If the property has not been modified it is skipped and not saved. But ALL of the properties are being skipped since none of them have been marked as modified (even though they were actually modified during the loading). The reason this happens is because LoadFromJSON calls "StopRecordPropertyChanges" before loading and none of the properties get marked as "changed". https://gitlab.com/freepascal.org/fpc/source/-/blob/main/packages/fcl-web/src/base/restbase.pp#L1333 Is this the correct behavior? It seems to me the code should be: StartRecordPropertyChanges; For D in JSON Do LoadPropertyFromJSON(D.Key,D.Value); StopRecordPropertyChanges; (or alternately get rid of the Start/Stop record property calls completely from LoadFromJSON and let the ObjectOptions control it: https://gitlab.com/freepascal.org/fpc/source/-/blob/main/packages/fcl-web/src/base/restbase.pp#L559 TBaseObject.Create sets ooStartRecordingChanges by default.) _______________________________________________ fpc-devel maillist - fpc-devel@lists.freepascal.org https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel