在Delphi的DBGRID组件中显示http Json响应

问题描述

我试图在运行时用Json响应填充Dbgrid组件,以将结果显示为列表,但是我无法执行此过程,我添加了ClientDataSet和DataSource组件,我不太了解德尔福。

   procedure TFConsultas.Button2Click(Sender: TObject);
   var
   URI:string;
   sResponse: string;
   codigo: string;
   I: Integer;
   Datos: TJSONValue;
   begin
    URI := 'http://localhost/E-commerce/rest/default/V1/products?searchCriteria[pageSize]=';
   
    IdHTTP1.Request.CharSet := 'utf-8';
    IdHTTP1.Request.Accept:= 'application/json';
    IdHTTP1.Request.CustomHeaders.Add('Authorization:Bearer ' + FObtenerToken.token);
    try
    sResponse:=IdHTTP1.Get(URI+Edit2.Text);
    codigo:= IdHTTP1.ResponseText;
    except
      on E: Exception do
      ShowMessage('Error on request: '#13#10 + e.Message);
    end;
    Memo1.Text := sResponse;
    Memo2.Text := codigo;
    Datos := TJSonObject.ParseJSONValue(sResponse);

正确获取json,以下代码行不知道它们是否正常工作,并且可以创建行并分配Json的值,正如我提到的我对delphi不太了解,我试图通过代码和设计属性将组件关联起来,但是在执行表单时,dbgrid组件显示为空,有人可以帮助我并指出我的表现不佳或缺少,或者应该怎么做

   for I := 0 to ClientDataSet1.FieldDefs.Count - 1 do
   begin
     case ClientDataSet1.FieldDefs[I].DataType of
   ftString,ftWideString,ftMemo :
    begin
      ClientDataSet1.FieldByName(ClientDataSet1.FieldDefs[I].Name).AsString :=
        Datos.TryGetValue(ClientDataSet1.FieldDefs[I].Name,Datos).ToString;

    end;
  ftSmallint,ftInteger,ftWord,ftLongWord,ftShortint :
    begin
      ClientDataSet1.FieldByName(ClientDataSet1.FieldDefs[I].Name).AsInteger :=
        (Datos.GetValue(ClientDataSet1.FieldDefs[I].Name,Datos) as TJsonNumber).AsInt;
    end;
  ftFloat,ftCurrency :
    begin
      ClientDataSet1.FieldByName(ClientDataSet1.FieldDefs[I].Name).AsFloat :=
        (Datos.GetValue(ClientDataSet1.FieldDefs[I].Name,Datos) as TJsonNumber).AsDouble;
    end;
 end;
      ClientDataSet1.CreateDataSet;
      DataSource1.DataSet:=ClientDataSet1;
      DBGrid1.DataSource:=DataSource1;
end;
end;

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...