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;
相关推荐
每天要多喝水10 小时前
nlohmann/json 的使用
c++·json
电商API&Tina13 小时前
乐天平台 (Rakuten) 数据采集指南
大数据·开发语言·数据库·oracle·json
数研小生1 天前
构建命令行单词记忆工具:JSON 词库与艾宾浩斯复习算法的完美结合
算法·json
编码者卢布1 天前
【Azure Stream Analytic】用 JavaScript UDF 解决 JSON 字段被转成 Record 的关键点
javascript·json·azure
电商API&Tina2 天前
电商数据采集 API 接口 全维度解析(技术 + 商业 + 合规)
java·大数据·开发语言·数据库·人工智能·json
liwulin05062 天前
【JSON】使用com.fasterxml.jackson解析json字符串
java·数据库·json
奔跑的呱呱牛2 天前
geojson-to-kml (KML 格式转换工具)
arcgis·json
一起养小猫2 天前
Flutter for OpenHarmony 实战:打造功能完整的云笔记应用
网络·笔记·spring·flutter·json·harmonyos
talle20214 天前
Hive | json数据处理
hive·hadoop·json
一起养小猫4 天前
Flutter for OpenHarmony 实战:网络请求与JSON解析完全指南
网络·jvm·spring·flutter·json·harmonyos