ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Ler retorno JSON

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
zamedi
Novato
Novato


Registrado: Segunda-Feira, 16 de Julho de 2007
Mensagens: 14

MensagemEnviada: Sáb Set 02, 2023 6:32 pm    Assunto: Ler retorno JSON Responder com Citação

Boa noite pessoal

Estou com dificuldade em ler um retorno JSON, já pesquisei bastante e não consegui fazer a leitura do mesmo

Segue um parcial do response:

{"vuScoreResponse":{"startTime":"2023-08-29","stopTime":"2023-08-29","vehicles":[{"vin":"9BVRG20C1NE926785","scores":{"total":53.515,"anticipation":28.0,"braking":100.0,"coasting":10.0,"engineAndGearUtilization":79.05,"withinEconomy":26.0,"aboveEconomy":100.0,"engineLoad":100.0,"gearboxInAutoMode":73.0,"gearboxInManualMode":70.0,"gearboxInPowerMode":100.0,"overrev":100.0,"topgear":0.0,"speedAdaption":60.0,"cruiseControl":0.0,"overspeed":100.0,"standstill":8.0,"idling":8.0},"totalTime":1198,"avgSpeedDrivingKmh":7.24,"avgFuelConsumptionPer100Km":172.31,"avgFuelConsumptionKgPer100Km":0.0,"vehicleUtilization":1.39,"totalDistanceInKm":1.3,"co2EmissionInTons":0.01},{"vin":"9BVRG20C2NE926789","scores":{"total":70.49,"anticipation":88.8,"braking":100.0,"coasting":86.0,"engineAndGearUtilization":69.5,"withinEconomy":100.0,"aboveEconomy":100.0,"engineLoad":95.0,"gearboxInAutoMode":0.0,"gearboxInManualMode":0.0,"gearboxInPowerMode":100.0,"overrev":100.0,"topgear":100.0,"speedAdaption":60.0,"cruiseControl":0.0,"overspeed":100.0,"standstill":40.0,"idling":40.0},"totalTime":3042,"avgSpeedDrivingKmh":38.53,"avgFuelConsumptionPer100Km":67.24,"avgFuelConsumptionKgPer100Km":0.0,"vehicleUtilization":3.52,"totalDistanceInKm":26.53,"co2EmissionInTons":0.04},
}],"moreDataAvailable":false,"requestServerDateTime":"2023-08-29T15:55:14Z"}}


Alguém poderia me ajudar por favor?

Desde já agradeço
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
marcieldeg
Colaborador
Colaborador


Registrado: Terça-Feira, 5 de Abril de 2011
Mensagens: 1054
Localização: Vitória - ES

MensagemEnviada: Dom Set 03, 2023 9:40 am    Assunto: Responder com Citação

Qual versão do Delphi você utiliza?
_________________
"Olha a interface da IDE! Será que ela é? Será que ela é? DELPHI!"
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
zamedi
Novato
Novato


Registrado: Segunda-Feira, 16 de Julho de 2007
Mensagens: 14

MensagemEnviada: Dom Set 03, 2023 5:56 pm    Assunto: Responder com Citação

Estou utilizando o 10.4
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
carlessoflu
Novato
Novato


Registrado: Quinta-Feira, 21 de Fevereiro de 2013
Mensagens: 3

MensagemEnviada: Seg Set 04, 2023 1:49 pm    Assunto: Responder com Citação

Segue um código de exemplo:

Código:

DMTabelas.RESTClient1.BaseURL := BaseURL + 'products?access_token='+ Access_Token+'';
DMTabelas.RESTRequestCadProduto.Execute;
if assigned(DMTabelas.RESTResponse1.JSONValue) then
   begin
     DMTabelas.RESTResponse1.RootElement := 'Products';       
JsonToDataset(DMTabelas.FDMemTableProdutosSite,DMTabelas.RESTResponse1.JSONText);
     DMTabelas.FDMemTableProdutosSite.Open;
     DMTabelas.FDMemTableProdutosSite.Fieldbyname('nome').AsString;


Passa a resposta para um MenTable, e depois vc consegue usa-lo como se fosse uma tabela.

Segue o código da procedure JsonToDataset:

Código:

procedure JsonToDataset(aDataset: TDataSet; aJSON: string);

procedure TFPrincipal.JsonToDataset(aDataset: TDataSet; aJSON: string);
var
  JObj: TJSONValue;
  vConv: TCustomJSONDataSetAdapter;
begin
  if (aJSON = EmptyStr) then
  begin
    exit;
  end;
  JObj := TJSONObject.ParseJSONValue(aJSON);
  aDataset.Close;
  vConv := TCustomJSONDataSetAdapter.Create(Nil);
  try
    vConv.DataSet := aDataset;
    vConv.UpdateDataSet(JObj);
  finally
    vConv.Free;
    JObj.Free;
  end;
end;
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB