[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