Delphi DataSet转JSon (使用SuperObject)

Delphi中将TDataSet转换为JSon字符串。

with ATM.LoadDataSet() do
  begin
  if IsEmpty then
    begin
      LogObj.WriteLog('未查询到该视图名称下该时间段内的上传数据,视图名称:'+ AViewname + '开始时间:'+ AStartdate + '结束时间:'+ AEnddate);
      exit
    end;
  while not Eof do

    begin
      for I := 0 to Fieldcount-1 do
      begin
        
        Item.S[Fields[I].FieldName]:=Fields[I].Asstring; //QuotedStr(Fields[I].FieldName)
      end;
      ja.Add(Item);
      next;
    end;
  end;

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1)JSON字符串还原为结构体; 2)访问结构体的字段值; uses SynCommons; const // JSON字符串 JSON1 = '{' + #13#10 + '"glossary": {' + #13#10 + '"title": "中国",' + #13#10 + ' "GlossDiv": {' + #13#10 + '"title": "湖南省",' + #13#10 + ' "GlossList": {' + #13#10 + '"GlossEntry": {' + #13#10 + '"ID": "湘乡市",' + #13#10 + ' "SortAs": "SGML",' + #13#10 + ' "GlossTerm": "Standard Generalized Markup Language",' + #13#10 + ' "Acronym": "SGML",' + #13#10 + ' "Abbrev": "ISO 8879:1986",' + #13#10 + ' "GlossDef": {' + #13#10 + '"para": "A meta-markup language, used to create markup languages such as DocBook.",' + #13#10 + ' "GlossSeeAlso": ["咏南中间件", "XML"]' + #13#10 + '},' + #13#10 + ' "GlossSee": "markup"' + #13#10 + '}' + #13#10 + '}' + #13#10 + '}' + #13#10 + '}' + #13#10 + '}'; type // 记录 TGlossary = record glossary: record title: string; GlossDiv: record title: string; GlossList: record GlossEntry: record ID, SortAs, GlossTerm, Acronym, Abbrev: string; GlossDef: record para: string; GlossSeeAlso: array of string; end; GlossSee: string; end; end; end; end; end; procedure TForm1.Button1Click(Sender: TObject); var gloss: TGlossary; json: RawUTF8; begin json := JSON1; RecordLoadJSON(gloss, @json[1], TypeInfo(TGlossary)); Memo1.Clear; Memo1.Lines.Add(gloss.glossary.title); // 中国 Memo1.Lines.Add(gloss.glossary.GlossDiv.title); // 湖南省 Memo1.Lines.Add(gloss.glossary.GlossDiv.GlossList.GlossEntry.ID); // 湘乡市 Memo1.Lines.Add(gloss.glossary.GlossDiv.GlossList.GlossEntry.GlossDef.GlossSeeAlso[0]); // 咏南中间件 end;
Delphi是一种开发工具,可以很方便地将JSON数据转换DataSetDataSetDelphi中用于存储和处理数据的组件,而JSON是一种轻量级的数据交换格式。 要快速将JSON数据转换DataSet,我们首先需要使用DelphiJSON相关工具库来解析JSON数据。Delphi提供了许多用于JSON处理的单元,例如Data.DBXJSON和System.JSON等。 首先,我们需要将JSON数据加载到一个TJSONObject对象中。可以通过使用TJSONObject.ParseJSONValue方法将JSON字符串转换为TJSONValue对象,再将其转换为TJSONObject。然后,我们可以使用TJSONObject的方法和属性来获取JSON数据的各个部分,如键值对、数组和嵌套的JSON对象。 接下来,我们可以创建一个TDataSet对象,如TClientDataSet或TFDMemTable,作为最终的DataSet。然后,我们可以使用TDataSet的FieldDefs属性来定义DataSet的字段结构,以匹配JSON数据的结构。可以根据JSON数据中键值对的名称和类型来定义字段。 一旦字段结构定义完毕,我们可以使用TDataSet的Insert和Edit方法来添加或编辑数据行。可以通过访问TDataSet的Fields属性,然后使用TField的AsInteger、AsFloat、AsString等方法来给字段赋值。 最后,我们可以使用TDataSet的SaveToFile或SaveToStream方法将DataSet保存到文件或流中,以供后续使用或展示。 总结起来,将JSON转换DataSet的过程如下: 1. 解析JSON数据并创建TJSONObject对象。 2. 创建TDataSet对象,并定义字段结构。 3. 使用TDataSet的Insert和Edit方法添加或编辑数据行,从TJSONObject中获取数据,并赋值给字段。 4. 保存DataSet到文件或流中。 将JSON数据转换DataSet可以方便地在Delphi中进行数据处理和操作。这种转换方式允许我们以更直观的方式操作和展示数据,同时也提供了方便的数据导入和导出功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值