Clipper On Line • Ver Tópico - Duvida com HASH

Duvida com HASH

Projeto Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

 

Duvida com HASH

Mensagempor Ezequiel Moura » 09 Nov 2017 06:14

Bom dia Pessoal , sou novo aqui e tbm em json. Estou tentando fazer o hash do arquivo abaixo e nao to conseguindo , alguem pode dar um Help . Tenho seguindo os exemplos aqui , mas não sei onde posso estar errando:

{"retorno":{"status_processamento":"3","status":"OK","pagina":1,"numero_paginas":2,"pedidos":[{"pedido":{"id":"385460048","numero":"2","numero_ecommerce":"Extra-10175853102","data_pedido":"02\/06\/2016","data_prevista":"","nome":"14373-FRANCISCO ALESSANDRO FERREIRA","valor":127.22,"id_vendedor":"0","nome_vendedor":"","situacao":"Atendido","codigo_rastreamento":"","url_rastreamento":null}},{"pedido":{"id":"385291456","numero":"1","numero_ecommerce":"Extra-10176932501","data_pedido":"03\/06\/2016","data_prevista":"","nome":"14370-CARLOS ALBERTO DA SILVA","valor":92.77,"id_vendedor":"0","nome_vendedor":"","situacao":"Aprovado","codigo_rastreamento":"DW286367038BR","url_rastreamento":null}},{"pedido":{"id":"386057358","numero":"3","numero_ecommerce":"Extra-10191599201","data_pedido":"06\/06\/2016","data_prevista":"","nome":"WAGNER RODRIGUES BARBOSA","valor":126.06,"id_vendedor":"0","nome_vendedor":"","situacao":"Aprovado","codigo_rastreamento":"DW295588845BR","url_rastreamento":null}},{"pedido":{"id":"386343139","numero":"4","numero_ecommerce":"Extra-10191596101","data_pedido":"06\/06\/2016","data_prevista":"","nome":"bruno siqueira de oliveira","valor":125.55,"id_vendedor":"0","nome_vendedor":"","situacao":"Aprovado","codigo_rastreamento":"DW298075329BR","url_rastreamento":null}},{"pedido":{"id":"386631359","numero":"5","numero_ecommerce":"Extra-10203283402","data_pedido":"09\/06\/2016","data_prevista":"","nome":"Graziele Walzburger","valor":194.48,"id_vendedor":"0","nome_vendedor":"","situacao":"Aprovado","codigo_rastreamento":"DW301426637BR","url_rastreamento":null}},{"pedido":{"id":"386631395","numero":"6","numero_ecommerce":"Lojas Americanas-262637433701","data_pedido":"09\/06\/2016","data_prevista":"","nome":"Roberto Diogo Viegas","valor":148.15,"id_vendedor":"0","nome_vendedor":"","situacao":"Aprovado","codigo_rastreamento":"DW301426787BR","url_rastreamento":null}}]}}


cJSON := xtext // ( arquivo .json)
hJSON := {} // hb_hash()
hb_JSONDecode( cJSON, @hJSON )
quantos=len(hjson)

element:=0

FOR EACH element IN hJSON

xnome:=element ["pedidos","nome"]
msgbox( xnome ,"Nome")


NEXT

Se alguem puder me dar o caminho das pedras . agradeço muito.

Valeu !!!
Ezequiel Moura
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 3
Data de registro: 09 Nov 2017 05:57
Cidade/Estado: SAO PAULO
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Duvida com HASH

Mensagempor sygecom » 15 Nov 2017 10:22

Ezequiel, bom dia.
Ezequiel Moura escreveu:Se alguem puder me dar o caminho das pedras . agradeço muito.


Veja se o exemplo ajuda:
FUNCTION TESTE_JSON
LOCAL hRet := HB_Hash()
LOCAL cRet:='', nPos:=0, cReg:=''

cRet := '{"result":[{"1":[{"placa":"ABC1234"},{"datahora":"25\/10\/2016 16:09:35"},{"latitude":"-23.5763034820557"},{"longitude":"-46.8151245117188"},{"velocidade":"0"},{"pos_chave":"0"},{"bloqueio":"0"},{"endereco":"Estrada das Rosas, 1234 OSASCO - SP"}],"2":[{"placa":"ABC1234"},{"datahora":"25\/10\/2016 17:25:45"},{"latitude":"-23.5766792297363"},{"longitude":"-46.8154640197754"},{"velocidade":"0"},{"pos_chave":"0"},{"bloqueio":"0"},{"endereco":"Rua A, 0 OSASCO - SP"}] }]}'

hb_JsonDecode( cRet, @hRet )

If Len(hRet) != 0
   If HHasKey( hRet, 'result' )

      For nPos=1 To Len( hRet['result',1] )
         cReg := Alltrim(Str(nPos))

         If !Empty(hRet['result',1][cReg,3]['latitude']) .And.;
            !Empty(hRet['result',1][cReg,4]['longitude'])

            AADD(aARQ,{hRet['result',1][cReg,6]['pos_chave']      ,;  // 01 - ignicao
                       hRet['result',1][cReg,5]['velocidade']     ,;  // 02 - velocidade
                       hRet['result',1][cReg,3]['latitude']       ,;  // 03 - latitude
                       hRet['result',1][cReg,4]['longitude']      ,;  // 04 - longitude
                       hRet['result',1][cReg,1]['placa']          ,;  // 05 - placa
                       Substr(hRet['result',1][cReg,2]['datahora'],1,10),;        // 06 - Data Transmissão
                       Substr(hRet['result',1][cReg,2]['datahora'],12,5)+':00',;  // 07 - Hora Transmissão
                       hRet['result',1][cReg,8]['endereco'],;         // 08 - Endereco de Leitura
                       .F. } )                                        // 09 - lido
         Endif
      Next
   Else
      ALERT('ERRO - RASTREADOR : '+hb_UTF8ToStr(hRet['Message']))
      RETURN(.F.)
   Endif
Else
   ALERT('ERRO - RASTREADOR : Erro no Envio da Chave :)
   Return(.F.)
EndIf

RETURN(.T.)
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
leonardodemachado@hotmail.com

Faça você também sua doação esse fórum é uma lenda viva: http://www.pctoledo.com.br/doacao
Avatar de usuário

sygecom
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 7005
Data de registro: 21 Jul 2006 10:12
Cidade/Estado: Alvorada-RS
Curtiu: 1 vez
Mens.Curtidas: 130 vezes

Duvida com HASH

Mensagempor Ezequiel » 11 Dez 2017 08:50

Deu certo sim. Muito Obrigado .

Ezequiel
Ezequiel
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 1
Data de registro: 29 Mai 2014 20:00
Cidade/Estado: São Paulo
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Duvida com HASH

Mensagempor andersoncamilo » 27 Abr 2022 17:53

Boa tarde.

Essas duas funções são HARBOUR.

hb_JsonDecode() e hb_hash()

Tem elas equivalentes no xharbour?

E se tem em qual lib encontro elas?

Obrigado

Anderson Camilo
andersoncamilo
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 102
Data de registro: 22 Ago 2004 11:54
Curtiu: 0 vez
Mens.Curtidas: 1 vez

Duvida com HASH

Mensagempor Itamar M. Lins Jr. » 27 Abr 2022 19:03

Olá!
Já tem no xHarbour 1.2 Veja seu Changelog.
2011-02-24 23:36 UTC+0700 Andi Jahja <xharbour/AT/telkom/net/id>
  + include/hbjson.h
  + source/rtl/hbjson.c
    ! JavaScript Object Notation (JSON) routines borrowed from Harbour

Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

Duvida com HASH

Mensagempor alxsts » 29 Abr 2022 13:28

Olá!
Itamar M. Lins Jr. escreveu:Já tem no xHarbour 1.2 Veja seu Changelog.

Não sabia disto... tinha olhado no xHarbour Language Reference Guide e não encontrei nada a respeito. Depois vi que este guia é de 2006/2007.
andersoncamilo escreveu:hb_JsonDecode() e hb_hash()

No xHarbour a função chama-se Hash() ou {=>}
// The example creates hashes using the literal hash operator
// and the Hash() function.

   PROCEDURE Main
      LOCAL hHash1 := { "OPT1" => 10, "OPT2" => 20 }
      LOCAL hHash2, hHash3

      hHash2 := Hash( "OPT2", 200, "OPT3", 300, "OPT4", 400 )

      hHash3 := hHash1 + hHash2

      ? ValToPrg( hHash3 )
      // { "OPT1" => 10, "OPT2" => 200, "OPT3" => 300, "OPT4" => 400 }
   RETURN
[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador

Colaborador
 
Mensagens: 2943
Data de registro: 12 Ago 2008 15:50
Cidade/Estado: São Paulo-SP-Brasil
Curtiu: 21 vezes
Mens.Curtidas: 248 vezes

Duvida com HASH

Mensagempor Itamar M. Lins Jr. » 29 Abr 2022 16:05

Olá!
Depois vi que este guia é de 2006/2007.

Pois é, o Patrick Mast fez esse livro muito bom por sinal na época. Vendeu e depois disponibilizou o PDF. Pagou p/ uma uma equipe ou alguém fazer. Mas ficou só nisso ai mesmo, não acompanhou a evolução do xHarbour.
Só tem até essa data ai. 2008,2009,2010... não tem. Outro motivo ai para reclamar quando o Viktor começou a mudar o nome de funções no Harbour, no livro ia ficar diferente.

Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

Duvida com HASH

Mensagempor Itamar M. Lins Jr. » 29 Abr 2022 16:23

Olá!
No xHarbour a função chama-se Hash() ou {=>}


No Harbour temos as duas. hash()(hbcompat.ch) e hb_hash()

Saudações,
Itamar M. LIns Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

Duvida com HASH

Mensagempor Linguagemclipper » 05 Set 2022 22:35

Eu até achei esses 2 arquivos aí fuçando na web:
2 + include/hbjson.h
3 + source/rtl/hbjson.c

Mas, não conseguí a respectiva LIB nem compilar ela.
Usando xHarbour v1.2.3 Rev. 10264 + BCC 5.8, Elchs' LetoDBf, DBFCDX e SIBRA para imprimir relatórios.
Avatar de usuário

Linguagemclipper
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 214
Data de registro: 16 Abr 2016 17:33
Cidade/Estado: Maceió/AL
Curtiu: 38 vezes
Mens.Curtidas: 12 vezes

Duvida com HASH

Mensagempor Linguagemclipper » 05 Out 2022 11:12

Dê uma olhada nesses exemplos bem detalhados e explicados:

https://linguagemclipper.com.br/aprendendo-hash

Conseguí usar essa lib do JSON no xHarbour 1.2.3 + BCC582.
Usando xHarbour v1.2.3 Rev. 10264 + BCC 5.8, Elchs' LetoDBf, DBFCDX e SIBRA para imprimir relatórios.
Avatar de usuário

Linguagemclipper
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 214
Data de registro: 16 Abr 2016 17:33
Cidade/Estado: Maceió/AL
Curtiu: 38 vezes
Mens.Curtidas: 12 vezes

Anterior



Retornar para Harbour

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 5 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro