Problem with TJSONObject - cannot use AddPair to add a TJSONArray in a "parsed" TJSONObject

Hi!

Trying to add an TJSONArray value results in null when TJSONObject had been parsed from a string. Works fine when creating TJSONObject from scratch.

This doesn't happen in VCL (using System.JSON).

The following code runs in Web Core & VCL.
In Web Core (WebLib.JSON), the btCreate generates:
{"MyData":"123 Ok","MyNewData":"789 Ok","MyArray":[1,2,3]}

while btParse generates:
{"MyData":"123 Ok","MyNewData":"789 Ok","MyArray":null}

In VCL (System.JSON) both buttons generate the expected ToJSON.

Attached both VCL & Web Core projects.

TJSONObjectAddArray VCL.zip (89.5 KB)
tjsonobjectaddarray.zip (7.0 KB)

procedure TMyForm.btCreateClick(Sender: TObject);
var
  x : TJSONObject;
  xa : TJSONArray;
begin
  x := TJSONObject.Create;
  x.AddPair('MyData','123 Ok');
  x.AddPair('MyNewData','789 Ok');
  xa := TJSONArray.Create;
  xa.Add(1);
  xa.Add(2);
  xa.Add(3);
  x.AddPair('MyArray', xa);
  memo.Lines.Text := x.ToJSON;
  x.Free;
end;

procedure TMyForm.btParseClick(Sender: TObject);
var
  x : TJSONObject;
  xa : TJSONArray;
begin
  x := TJSONObject.ParseJSONValue('{"MyData":"123 Ok"}') as TJSONObject;
  x.AddPair('MyNewData','789 Ok');
  xa := TJSONArray.Create;
  xa.Add(1);
  xa.Add(2);
  xa.Add(3);
  x.AddPair('MyArray', xa);
  memo.Lines.Text := x.ToJSON;
  x.Free;
end;

Hi,

I have been able to reproduce this issue based on the samples you provided.
We are currently investigating this issue and will report back as soon as possible.

Hi! No news yet?

We fixed this. Next update will address this.