[fpc-pascal] TJSONParser crash

Michael Van Canneyt michael at freepascal.org
Wed Sep 28 19:48:10 CEST 2022



On Wed, 28 Sep 2022, Michael Van Canneyt via fpc-pascal wrote:

>
>
> On Wed, 28 Sep 2022, Hairy Pixels via fpc-pascal wrote:
>
>> Ok I narrowed down this bug I get with 3.2.2 to TJSONParser. 
>> I’m so confused as to what changed.  FormatJSON prints the JSON as expected 
>> but AsString crashes and gives the error I was seeing from the RPC which it 
>> trapped as an exception. When it’s send across the RPC layer it must call 
>> AsString and then blow up thus giving me this error.
>> 
>> The JSON in question printed from FormatJSON is valid and can be opened in 
>> a JSON editor even so I know it’s ok.
>> 
>> ===========================
>> 
>> Request := TJSONParser.Create(Content, DefaultOptions).Parse;
>> 
>> writeln(Request.FormatJSON);  // this prints the JSON correctly (Request 
>> ClassName is TJSONObject)
>> 
>> writeln(Request.AsString); 
>> gives this error:
>> 
>> An unhandled exception occurred at $00000001050261A7:
>> EJSON: Cannot convert data from object value
>
> Of course, as AsString will not work on a TJSONObject. AsString will only 
> work on the simple types, not on the object or array types or null.

Small addendum: Request.AsJSON will of course always work.

Michael.


More information about the fpc-pascal mailing list