Sample code for 30+ languages & platforms
Delphi DLL

Load a JsonArray

See more JSON Examples

Demonstrates how to load a JsonArray.

Note: This example requires Chilkat v9.5.0.64 or greater.

Chilkat Delphi DLL Downloads

Delphi DLL
uses
    Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
    Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, JsonArray, JsonObject;

...

procedure TForm1.Button1Click(Sender: TObject);
var
a: HCkJsonArray;
json: HCkJsonObject;
abc: HCkJsonArray;

begin
// This example requires Chilkat v9.5.0.64 or greater.

// Loading into a new JSON array is simple and straightforward.
a := CkJsonArray_Create();
CkJsonArray_Load(a,'[ 1,2,3,4 ]');

// Output:  [1,2,3,4]
Memo1.Lines.Add(CkJsonArray__emit(a));
Memo1.Lines.Add('--------');

// The JsonArray's Load and LoadSb methods have a peculiar behavior when
// it is already part of a JSON document.  In this case, the JsonArray
// becomes detached, and the original document remains unchanged.
// This is intentional due to the nature of the internal implementation.
// For example:

json := CkJsonObject_Create();
CkJsonObject_Load(json,'{ "abc": [ 1,2,3,4 ] }');

// Output:  (json) {"abc":[1,2,3,4]}
Memo1.Lines.Add('(json) ' + CkJsonObject__emit(json));
Memo1.Lines.Add('--------');

abc := CkJsonObject_ArrayOf(json,'abc');
// When Load is called, abc becomes it's own document, and the original is not modified.
CkJsonArray_Load(abc,'[ 5,6,7,8 ]');

// Output: (abc) [5,6,7,8]
Memo1.Lines.Add('(abc) ' + CkJsonArray__emit(abc));
Memo1.Lines.Add('--------');

// Output: (json) {"abc":[1,2,3,4]}
Memo1.Lines.Add('(json) ' + CkJsonObject__emit(json));
Memo1.Lines.Add('--------');
CkJsonArray_Dispose(abc);

CkJsonArray_Dispose(a);
CkJsonObject_Dispose(json);

end;