Это небольшой (около 1600 строк кода) модуль для Delphi, реализующий разбор и генерацию формата JSON.
Может быть использован в сочетании с FastMM и FASTCODE для еще более высокой производительности.
Создание объектов вручную:
procedure TForm1.Button1Click(Sender: TObject);
var
js, js2: TJSONbase;
s: AnsiString;
begin
js := TJSONbase.Create;
js.Add(2, True);
js.Add(5, 20);
js.Add(3.1415);
js2 := js.Add('abc');
js2.Value := 7;
s := js.Text;
js.Free;
end;
Создание объектов из текста:
procedure TForm1.Button1Click(Sender: TObject);
const
s1: AnsiString = '{"a":true,"2":2,"d":3.1415,"x":"y"}';
s2: AnsiString = '[true,2,3.1415,"abc"]';
s3: AnsiString = '[1,{"a":2,"b":3},4]';
s4: AnsiString = '{"z":[1,{"z":4},3],"x":2}';
var
js1, js2, js3, js4: TJSONbase;
s: AnsiString;
begin
js1 := ParseJSON(s1);
js2 := ParseJSON(s2);
js3 := ParseJSON(s3);
js4 := ParseJSON(s4);
js3.Add(js4);
js2.Add(js3);
js1.Add(js2);
s := js1.Text;
js1.Free;
end;
Перечисление массива вручную:
procedure TForm1.Button1Click(Sender: TObject);
var
js, t: TJSONbase;
begin
// ---- create the array somehow
t := js.FirstChild;
while Assigned(t) do
begin
// ----- do something
t := t.Next;
end;
end;
|