• mormot生成和解析json


    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.
    

      

      

  • 相关阅读:
    python 读取邮件
    windows 关于时间的计算
    python 发送 smtp
    常用HTML富文本编辑器
    数据库设计:用户登录系统数据库表设计
    在当前页面打开一个固定的窗口(页面):这种方式弹出来的窗口进行表单提交可更新父类窗口
    后台模板
    springboot/springmvc转换器
    设计模式目录
    组合条件分页查询
  • 原文地址:https://www.cnblogs.com/hnxxcxg/p/14827165.html
Copyright © 2020-2023  润新知