Delphi7实现Json对象的序列化与反序列化

在高版本的 Delphi 中,实现序列化和反序列化非常简单。然而,在 Delphi 7 中,这个过程仍然需要一些额外的努力。为了简化这个问题,我花了一些时间封装了一个支持序列化和反序列化的 JSON 解析库。

javascript 复制代码
type
  {$M+}
  TStartupParameters = class
  private
    FAccount: String;
    FPassword: String;
    FServerName: String;
    FChannel: String;
    FTaskName: String;
    FWindowHandle: HWND;
  public
    constructor Create;
    destructor Destroy; override;
  published
    property Account: String read FAccount write FAccount;
    property Password: String read FPassword write FPassword;
    property ServerName: String read FServerName write FServerName;
    property Channel: String read FChannel write FChannel;
    property TaskName: String read FTaskName write FTaskName;
    property WindowHandle: HWND read FWindowHandle write FWindowHandle;
  end;
  {$M-}
  
function ObjectToJson: string;
var
   obj: ISuperObject;
   LStartupParameters: TStartupParameters;
begin
   LStartupParameters := TStartupParameters.Create;
   LStartupParameters.FAccount:= 'test';
   LStartupParameters.FPassword:= '123456';

   obj := TOldRttiMarshal.ToJson(LStartupParameters);
   Result:= obj.AsJson;
end;

function JsonToObject(JsonString: string): string;
begin
   StartupParameters := TStartupParameters(TOldRttiUnMarshal.FromJson(TStartupParameters, JsonString));
   Result:= 'Account: ' + StartupParameters.Account +#13#10+ 'Password: ' + StartupParameters.Password;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Memo1.Lines.Add(ObjectToJson);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  JsonToObject(Memo1.Text);
  Memo2.Lines.Add(JsonToObject(Memo1.Text));
end;
相关推荐
lifewange13 小时前
CNode API v1 完整接口文档(JSON 规范整理)
java·前端·json
测试修炼手册1 天前
[测试技术] 深入理解 JSON Web Token (JWT)
前端·json
九转成圣1 天前
Java 性能优化实战:如何将海量扁平数据高效转化为类目字典树?
java·开发语言·json
小袁拒绝摆烂1 天前
多表关联大平层转JSON树形结构
java·json
学术阿凡提1 天前
Spring Boot 集成 Fastjson2 完整教程:从入门到避坑
spring boot·安全·json
LIUAWEIO1 天前
鸽鸽工具网:免费在线工具大全,打开网页即用
人工智能·安全·ai·json
半天法师2 天前
Bug 记录:UE 结构体转 JSON 时 Key 字段大小写异常 (Editor 与打包后表现不一致)
ai·ue5·json·bug
鸽芷咕2 天前
KingbaseES数据类型完全指南:从基础CHAR到JSON/XML/几何类型
xml·oracle·json
归途醉染2 天前
Swifter.Json
c#·json·swifter.json
网络点点滴2 天前
NPM 和 package.json 文件简介
前端·npm·json