Delpshi - WebService - Json
27/05/2013
0
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
Post mais votado
27/05/2013
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.
Mais Posts
27/05/2013
Alvaro Maia
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.
27/05/2013
Tone Costa.
Primeiro eu pego a posicao dos campos e depois vou retirando o conteudo depois dos : .
28/05/2013
Alvaro Maia
Clique aqui para fazer login e interagir na Comunidade :)