| Exibir mensagem anterior :: Exibir próxima mensagem | 
	
	
		| Autor | Mensagem | 
	
		| benilton Novato
 
  
 
 Registrado: Domingo, 22 de Junho de 2008
 Mensagens: 13
 
 
 | 
			
				|  Enviada: Qui Out 31, 2019 8:48 am    Assunto: Pegar dados de uma json |   |  
				| 
 |  
				| 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 |  | 
	
		|  | 
	
		| joemil Moderador
 
  
 
 Registrado: Quinta-Feira, 25 de Março de 2004
 Mensagens: 9100
 Localização: Sinop-MT
 
 | 
			
				|  Enviada: Qui Out 31, 2019 9:37 am    Assunto: |   |  
				| 
 |  
				| 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 |  | 
	
		|  | 
	
		| natanbh1 Colaborador
 
  
 
 Registrado: Terça-Feira, 15 de Março de 2011
 Mensagens: 3093
 Localização: Belo Horizonte - MG
 
 | 
			
				|  Enviada: Qui Out 31, 2019 12:39 pm    Assunto: |   |  
				| 
 |  
				| 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 |  | 
	
		|  | 
	
		| benilton Novato
 
  
 
 Registrado: Domingo, 22 de Junho de 2008
 Mensagens: 13
 
 
 | 
			
				|  Enviada: Qui Out 31, 2019 8:07 pm    Assunto: |   |  
				| 
 |  
				|  	  | 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 |  | 
	
		|  | 
	
		| natanbh1 Colaborador
 
  
 
 Registrado: Terça-Feira, 15 de Março de 2011
 Mensagens: 3093
 Localização: Belo Horizonte - MG
 
 | 
			
				|  Enviada: Sex Nov 01, 2019 10:49 am    Assunto: |   |  
				| 
 |  
				| 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 |  | 
	
		|  | 
	
		|  |