Delpshi - WebService - Json

27/05/2013

0

Olá!
Estou precisando acessar uma função de um webservice que retorna uma string formatada estilo JSON.
Não estou sabendo como tratar essa string, como acessar esses dados.

Alguém sabe como fazer ou sabe de algum link que possa estudar???

Grato!
Alvaro Maia

Alvaro Maia

Responder

Post mais votado

27/05/2013

Eu estou fazendo uma integracao com um site atraves de Json

Para verificar se existe o registro eu uso um IDHTTP da palheta indy da seguinte forma

// Configurar o HTTP
IdHTTP.Request.Clear;
IDHttp.Request.CustomHeaders.Clear;
IdHTTP.Request.ContentType := 'application/json';
IdHTTP.Request.Accept := 'application/json';
IdHTTP.Request.CustomHeaders.Add('Authorization: Token token="6d77dfdadfadfadsfasdfadfasdfasdfasdfasdf"');

// Verificar se ja existe o registro
// aqui ele vai retornar um string no formato json
RetornoSite := IdHTTP.Get(host + '/api/empresas/'+objetoCliente.Id);

// Inserir um registro
// objeto registro é uma stringlist com apenas uma linha com a string Json
// no meu caso é
Registro := TStringList.Create;
Registro.Add('{"empresa": {"id": "51578", "nome": "A. PEREIRA & CIA LTDA" , "perfil_id" : "3" , "pf" : "false" }}');
IdHTTP.Post(host + '/api/empresas', Registro);

// Atualizar um registro
// Para fazer o put tem que criar um stream e passar a string json
Stream := TStringStream.Create('{"empresa": {"id": "51578", "nome": "A. PEREIRA & CIA LTDA" , "perfil_id" : "3" , "pf" : "false" }}');
IdHTTP.Put(host + '/api/empresas/'+objetoCliente.Id, Stream);

Até agora esta funcionando, mas ainda está em fase de testes.
Espero er ajudado





Tone Costa.

Tone Costa.
Responder

Mais Posts

27/05/2013

Alvaro Maia

Olá Tone!

estou utilizando o HTTPRIO e faço assim:

var
sr: wsAgendaMedSoap;
strJson: string;
begin
sr := GetwsAgendaMedSoap(false, '', HTTPRIO1);
strJson := ser.ConsultaAgendaPorCarteira(Edit2.Text);

Na string strJson vem algo assim:

[{"ag_med_serv":971,"me_nome":"medico","ag_data":"\/Date(1294020000000)\/","ag_hora":700,"att_desc":"Consulta","ag_sit":"R","esp_nome":"Clínica Médica"},{"ag_med_serv":1093,"me_nome":"Medico","ag_data":"\/Date(1294020000000)\/","ag_hora":1000,"att_desc":"Retorno","ag_sit":"R","esp_nome":"Ginecologia"}]

Gostaria de saber como manipular (extrair os dados) dessa string.
Responder

27/05/2013

Tone Costa.

Pos em cada campo para extrair o seu valor

Primeiro eu pego a posicao dos campos e depois vou retirando o conteudo depois dos : .

Responder

28/05/2013

Alvaro Maia

O delphi tem uns objetos próprios para isso. Assisti um vídeo de uma conferência da embarcadeiro falando sobre json, mas o vídeo está péssimo. No vídeo, ele fala sobre objetos tjsonobject, tjsonarray, etc. e mostra vários exemplos que não funcionaram com minha string de retorno. Acho q esse é o caminho. Continuo procurando. Se achar algo posto aqui.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar