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 

Pegar dados de uma json

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


Registrado: Domingo, 22 de Junho de 2008
Mensagens: 13

MensagemEnviada: Qui Out 31, 2019 8:48 am    Assunto: Pegar dados de uma json Responder com Citação

senhores eu tenho um memo que recebe: (Memo2.Lines.Text := Response ) trazendo os dados abaixo:

{"code":200,"data":{"barcode":"00000.00000 00000.000000 00000.000000 0 00000000000000","link":"https://visualizacaosandox.teste.com.br/.../A4XB...","pdf":{"charge":"https://download.teste.com.br/.../215831-542951..."},"expire_at":"2019-11-30","charge_id":794519,"status":"waiting","total":701,"payment":"banking_billet"}}

eu gostaria de pegar os valores code, barcode, link, charge, charde_id....
como eu faço isso no delphi?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
joemil
Moderador
Moderador


Registrado: Quinta-Feira, 25 de Março de 2004
Mensagens: 9098
Localização: Sinop-MT

MensagemEnviada: Qui Out 31, 2019 9:37 am    Assunto: Responder com Citação

eu uso a unit superObjects. da uma pesquisada sobre ela
tem varios exemplos na net
_________________
<b>SEMPRE COLOQUE [RESOLVIDO] NO SEU POST</b>
Enviar imagens: http://tinypic.com/
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
natanbh1
Colaborador
Colaborador


Registrado: Terça-Feira, 15 de Março de 2011
Mensagens: 3093
Localização: Belo Horizonte - MG

MensagemEnviada: Qui Out 31, 2019 12:39 pm    Assunto: Responder com Citação

Declare DBXJson na uses do form e teste o código abaixo:

Código:
var
  jsonObj, jsonObjData, jsonObjPDF: TJSONObject;
  jv: TJSONValue;
  i: Integer;
begin
  jsonObj := TJSONObject.ParseJSONValue(TEncoding.ASCII.GetBytes(Trim(Memo2.Text)), 0)
    as TJSONObject;

  jv := jsonObj.Get('data').JsonValue;
  jsonObjData := jv as TJSONObject;

  jv := jsonObjData.Get('pdf').JsonValue;
  jsonObjPDF := jv as TJSONObject;

  ShowMessage
  (
   'code: ' + jsonObj.Get('code').JsonValue.Value + sLineBreak +
   'barcode: ' + jsonObjData.Get('barcode').JsonValue.Value + sLineBreak +
   'link: ' + jsonObjData.Get('link').JsonValue.Value + sLineBreak +
   'charge: ' + jsonObjPDF.Get('charge').JsonValue.Value + sLineBreak +
   'expire_at: ' + jsonObjData.Get('expire_at').JsonValue.Value + sLineBreak +
   'charge_id: ' + jsonObjData.Get('charge_id').JsonValue.Value + sLineBreak +
   'status: ' + jsonObjData.Get('status').JsonValue.Value + sLineBreak +
   'total: ' + jsonObjData.Get('total').JsonValue.Value + sLineBreak +
   'payment: ' + jsonObjData.Get('payment').JsonValue.Value
   );
end;

_________________
''A persistência é o caminho para o êxito.''
Charlie Chaplin
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
benilton
Novato
Novato


Registrado: Domingo, 22 de Junho de 2008
Mensagens: 13

MensagemEnviada: Qui Out 31, 2019 8:07 pm    Assunto: Responder com Citação

natanbh1 escreveu:
Declare DBXJson na uses do form e teste o código abaixo:

Código:
var
  jsonObj, jsonObjData, jsonObjPDF: TJSONObject;
  jv: TJSONValue;
  i: Integer;
begin
  jsonObj := TJSONObject.ParseJSONValue(TEncoding.ASCII.GetBytes(Trim(Memo2.Text)), 0)
    as TJSONObject;

  jv := jsonObj.Get('data').JsonValue;
  jsonObjData := jv as TJSONObject;

  jv := jsonObjData.Get('pdf').JsonValue;
  jsonObjPDF := jv as TJSONObject;

  ShowMessage
  (
   'code: ' + jsonObj.Get('code').JsonValue.Value + sLineBreak +
   'barcode: ' + jsonObjData.Get('barcode').JsonValue.Value + sLineBreak +
   'link: ' + jsonObjData.Get('link').JsonValue.Value + sLineBreak +
   'charge: ' + jsonObjPDF.Get('charge').JsonValue.Value + sLineBreak +
   'expire_at: ' + jsonObjData.Get('expire_at').JsonValue.Value + sLineBreak +
   'charge_id: ' + jsonObjData.Get('charge_id').JsonValue.Value + sLineBreak +
   'status: ' + jsonObjData.Get('status').JsonValue.Value + sLineBreak +
   'total: ' + jsonObjData.Get('total').JsonValue.Value + sLineBreak +
   'payment: ' + jsonObjData.Get('payment').JsonValue.Value
   );

 funcionou mais gostaria de tirar outra duvida enquanto eu estudo

 O memo2 que recebe o json de
 Memo2.Lines.Text := Response;

 se eu quisesse pegar os valores direto do response sem carregar no memo2 como ficaria?
 
end;
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
natanbh1
Colaborador
Colaborador


Registrado: Terça-Feira, 15 de Março de 2011
Mensagens: 3093
Localização: Belo Horizonte - MG

MensagemEnviada: Sex Nov 01, 2019 10:49 am    Assunto: Responder com Citação

Faça um teste, substituindo o Memo2.Text por Response no código:

Código:
var
  jsonObj, jsonObjData, jsonObjPDF: TJSONObject;
  jv: TJSONValue;
  i: Integer;
begin
  jsonObj := TJSONObject.ParseJSONValue(TEncoding.ASCII.GetBytes(Trim(Response)), 0) as TJSONObject;

  jv := jsonObj.Get('data').JsonValue;
  jsonObjData := jv as TJSONObject;

  jv := jsonObjData.Get('pdf').JsonValue;
  jsonObjPDF := jv as TJSONObject;

  ShowMessage
  (
   'code: ' + jsonObj.Get('code').JsonValue.Value + sLineBreak +
   'barcode: ' + jsonObjData.Get('barcode').JsonValue.Value + sLineBreak +
   'link: ' + jsonObjData.Get('link').JsonValue.Value + sLineBreak +
   'charge: ' + jsonObjPDF.Get('charge').JsonValue.Value + sLineBreak +
   'expire_at: ' + jsonObjData.Get('expire_at').JsonValue.Value + sLineBreak +
   'charge_id: ' + jsonObjData.Get('charge_id').JsonValue.Value + sLineBreak +
   'status: ' + jsonObjData.Get('status').JsonValue.Value + sLineBreak +
   'total: ' + jsonObjData.Get('total').JsonValue.Value + sLineBreak +
   'payment: ' + jsonObjData.Get('payment').JsonValue.Value
   );
end;

_________________
''A persistência é o caminho para o êxito.''
Charlie Chaplin
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
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