Delphi Xe DataSetToObject by SuperObject

由于服务器使用的是php,经常需要使用json和对象间的互相转换,网上找了蛮久也没有找到需要的

自己草写了一个,Mark一下

function TMyDataTable.DatSetTojson: ISuperObject;
var
  itema: ISuperObject;
  i,j:Integer;
  f:TField;
begin
  result:=nil;
  if FQry.Active = false then exit;
  if FQry.RecordCount <>1 then exit;
  with fqry do
  begin
     First;
     itema:=SO();
     for i := 0 to Fields.Count-1 do
     begin
       f:= Fields[i];
       case f.DataType of
         ftString,ftMemo,ftFixedChar,ftWideString,ftFixedWideChar,ftWideMemo:
           begin
              if VarIsNull(FieldByName(f.FieldName).Value) then
              itema.S[Fields[i].FieldName]:=''
              else
              itema.S[Fields[i].FieldName]:=FieldByName(f.FieldName).AsString;
           end
       else
           begin
             if VarIsNull(FieldByName(f.FieldName).Value) then
              itema.S[Fields[i].FieldName]:='0'
             else
              itema.S[Fields[i].FieldName]:=FieldByName(f.FieldName).AsString;
           end;
       end

     end;
  end;
  result:=itema;
end; 

使用此函数实现Dataset到json的转换

function TMyDataTable.JsonToObj<T>(json: ISuperObject): T;
begin
  if mctx = nil then
  mctx:=TSuperRttiContext.Create;
  result:=mctx.AsType<T>(json);
end; 

使用此函数实现JsonToObj的转换

function TMyDataTable.objToJson<T>(obj:T):Isuperobject;
begin
  if mctx = nil then
  mctx:=TSuperRttiContext.Create;
  mctx:=TSuperRttiContext.Create;
  result:=mctx.AsJson<T>(obj);
end;

使用此函数实现ObjectToJson的转换

function TMyDataTable.JsonToObj<T>(json: ISuperObject): T;
begin
  if mctx = nil then
  mctx:=TSuperRttiContext.Create;
  result:=mctx.AsType<T>(json);
end;

使用此函数实现JsonToObject的转换

至此本地客户端与服务器和数据库之间的数据交换就全部实现了,不过这些函数只做一条record的处理

暂时先够自己用了,如果您发现网上有更好的库麻烦转告一下谢谢



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
delphi xe superobject.pas 是一个开源的 Delphi 库,用于处理 JSON 数据的解析和生成。您可以通过以下步骤下载和使用该库: 1. 打开您的浏览器,进入 GitHub 的官方网站(https://github.com)。 2. 在搜索框中输入 "superobject" 并按下回车键。 3. 在搜索结果中,找到 "superobject" 的官方仓库(https://github.com/hgourvest/superobject)并点击进入。 4. 进入仓库后,您会看到仓库的所有文件和文件夹。 5. 在仓库页面上方,您会看到一个绿色的按钮,上面写着 "Code",点击该按钮。 6. 在弹出的下拉菜单中,您可以选择 "Download ZIP" 来下载整个库的压缩文件。 7. 点击 "Download ZIP" 后,浏览器将开始下载压缩文件。请等待下载完成。 8. 下载完成后,可以解压缩文件,您将得到一个名为 "superobject" 的文件夹。 9. 打开 Delphi XE 开发环境,并创建一个新的 Delphi 项目。 10. 在项目中,右击您的项目名称,选择 "Add" -> "Existing Item"。 11. 在弹出的文件选择对话框中,导航到刚刚解压缩的 "superobject" 文件夹中,选择 "superobject.pas" 文件,并点击 "打开"。 12. 文件将被添加到您的项目中,并可在代码中使用。 13. 现在,您可以根据您的需求,使用 superobject.pas 库来处理 JSON 数据了。 请注意,在使用该库之前,您需要对 Delphi XE 环境熟悉,了解如何在项目中添加文件,以及如何在代码中使用外部库的函数和类。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值