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;
相关推荐
陈涛5752 天前
5个最好用的 JSON 工具推荐:让数据处理变得简单高效
json
bkspiderx3 天前
pb2json.hpp 文档:Protobuf 与 JSON 通用转换工具类
json·protobuf·protobuf与json转换
万粉变现经纪人3 天前
何解决PyCharm中pip install安装Python报错ModuleNotFoundError: No module named ‘json’问题
python·pycharm·json·beautifulsoup·scikit-learn·matplotlib·pip
晨欣4 天前
orjson 与 json:实战对比与选型指南(含示例)(GPT-5 回答)
gpt·json
Pi_Qiu_4 天前
Python初学者笔记第二十二期 -- (JSON数据解析)
笔记·python·json
mon_star°5 天前
有趣的 npm 库 · json-server
前端·npm·json
ID_180079054735 天前
淘宝拍立淘按图搜索API接口功能详细说明
大数据·python·json·图搜索算法
cypking5 天前
vue excel转json功能 xlsx
vue.js·json·excel
我又来搬代码了5 天前
【Android】【bug】Json解析错误Expected BEGIN_OBJECT but was STRING...
android·json·bug
山里幽默的程序员6 天前
如何使用Postman无障碍导入JSON文件?详细步骤&工具对照
测试工具·json·postman