在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;
iCMS 回答:在Delphi的DBGRID组件中显示http Json响应

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/1588044.html

大家都在问