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;
相关推荐
zhangfeng11335 小时前
JupyterLab 里,JSON文件纯文本格式编辑 / 查看
人工智能·json
一个被程序员耽误的厨师6 小时前
04-实践篇-让AI生成可视化页面-ai-json-ui的落地实践
人工智能·ui·json
网管NO.18 小时前
MySQL 8.0 JSON 操作 | 新增 / 查询 / 修改,适配新兴业务
数据库·mysql·json
糖果店的幽灵9 小时前
软件测试接口测试从入门到精通:常见接口类型与数据格式
xml·软件测试·json·接口测试·数据格式
PixelBai2 天前
JSON压缩使用教程:从入门到精通
json
nexustech2 天前
simplejson:Python JSON 处理的备用引擎
开发语言·python·其他·json
m0_497048933 天前
Prompt工程:从自然语言到代码化思维
json
ID_180079054733 天前
淘宝商品评论 API(taobao.item.reviews.get)业务场景与 JSON 返回实战
json
PixelBai3 天前
JSON差异比较高级用法技巧
java·服务器·json
hhzz3 天前
Uniapp项目中解决一个比较典型的图标渲染问题:原生 tabBar(pages.json 里配置的那种)
uni-app·json