标签:private sharp utils messages mfile variant imp log 测试
mormot生成和解析json
delphi7测试并通过。
unit Unit1;
interface
uses
syncommons, Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms, Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
//解析json
var
js: TDocVariantData;
json: string;
begin
json := ‘{"tt":"1"}‘;
js.InitJSON(json);
Caption := js.GetValueByPath([‘tt‘]);
end;
(*
{
"blockCount":3,
"blocks":[
{"FieldCount":1, "fields":[{"Name":"姓名", "Value":["张1", "张2","张三"]}]},
{"FieldCount":1, "fields":[{"Name":"单位", "Value":["华2", "张2","张三"]}]},
{"FieldCount":1, "fields":[{"Name":"单位", "Value":["华拓", "张2","张三"]}]}
]
}
*)
procedure TForm1.Button2Click(Sender: TObject);
//解析json
var
js, js2, js3: TDocVariantData;
begin
js.InitJSONFromFile(‘tt.json‘);
caption := DocVariantData(js.GetValueByPath([‘blocks‘])).value[0]; //{"FieldCount":1, "fields":[{"Name":"姓名", "Value":["张1", "张2","张三"]}]}
js2.InitJSON(caption);
caption := DocVariantData(js2.GetValueByPath([‘fields‘])).value[0]; //{"Name":"姓名", "Value":["张1", "张2","张三"]}
js3.InitJSON(caption);
Caption := js3.U[‘Name‘] + DocVariantData(js3.GetValueByPath([‘Value‘])).value[0]; //姓名张1
caption := DocVariantData(DocVariantData(js.A[‘blocks‘].Value[1]).A[‘fields‘].Value[0]).A[‘Value‘].Value[0]; //华2
end;
(*
{"Name":"Str0","Age":0,"List":[1,"Hello",5,{"name":"咏南中间件","age":99}]}
{"Name":"Str1","Age":1,"List":[1,"Hello",5,{"name":"咏南中间件","age":99}]}
*)
procedure TForm1.Button3Click(Sender: TObject);
//生成json
var
jo: Variant;
i: Int64;
begin
TDocVariant.New(jo);
i := 0;
while i < 2 do
begin
jo.Name := ‘Str‘ + IntToStr(i);
jo.Age := i;
jo.List := _JSon(‘[1,"Hello",5,{"name":"咏南中间件","age":99}]‘);
Memo1.Lines.Add(VariantSaveJSON(jo));
inc(i);
end;
end;
end.
标签:private sharp utils messages mfile variant imp log 测试
原文地址:https://www.cnblogs.com/hnxxcxg/p/14827165.html