• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Delphi10.3通过Json.Serializers单元对大量数据序列化

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

一、参考我之前的博客,Delphi可以很方便的把类和结构体转换成JSON数据,但是数据量大了,就会非常之慢,1万条数据需要20秒左右。如果引用Serializers单元,那么100万数据只需要4秒左右,每秒处理20万+,速度还是很快的。

 

二、写一个简单的类

  TPeople = class
  private
    FName: string;
    FScore: Integer;
    FAge: TDateTime;
  public
    property Name: string read FName write FName;
    property Score: Integer read FScore write FScore;
    property Age: TDateTime read FAge write FAge;
  end;

 

二、写个100万的大循环,创建100万个类实例,并把数据输出成JSON

uses
  REST.Json,
  System.Json,
  System.Types,
  System.Json.Types,
  System.Json.Writers,
  System.Json.Builders,
  System.Json.Serializers(*必须引用这个单元*);

procedure TForm1.Button6Click(Sender: TObject);
var
  m_People: TPeople;
  m_Time1, m_Time2: TDateTime;
  m_PeopleList: TArray<TPeople>;
  I: Integer;
begin
  Memo1.Clear;
  Memo2.Clear;
  m_Time1 := Now;
  SetLength(m_PeopleList, 1000001);
  for I := 0 to 1000000 do
  begin
    m_PeopleList[I] := TPeople.Create;
    try
      // 循环赋值
      m_PeopleList[I].Name := '张三';
      m_PeopleList[I].Age := Now;
      m_PeopleList[I].Score := I;
    finally
    end;
  end;
  TJsonSerializer.Create.Serialize(m_PeopleList);
  m_Time2 := Now;
  //看看100万个实例类生产JSON需要多久
  Memo1.Lines.Add(FormatDateTime('ss.zzz', m_Time2 - m_Time1));
  //把JSON显示出来
  Memo2.Text := TJsonSerializer.Create.Serialize(m_PeopleList);
end;

 

三、我们运行一下,看看结果:

 

不忘初心,如果您认为这篇文章有价值,认同作者的付出,可以微信二维码打赏任意金额给作者(微信号:382477247)哦,谢谢


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
MATLAB求解方程与方程组发布时间:2022-07-18
下一篇:
基于Matlab用遗传算法求一元函数最值问题(附源码)发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap