Duvida com HASH
Moderador: Moderadores
-
Ezequiel Moura
- Usuário Nível 1

- Mensagens: 3
- Registrado em: 09 Nov 2017 06:57
- Localização: SAO PAULO
Duvida com HASH
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 !!!
{"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 !!!
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Duvida com HASH
Ezequiel, bom dia.
Veja se o exemplo ajuda:Ezequiel Moura escreveu:Se alguem puder me dar o caminho das pedras . agradeço muito.
Código: Selecionar todos
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
xHarbour.org + Hwgui + PostgreSql
-
andersoncamilo
- Usuário Nível 3

- Mensagens: 103
- Registrado em: 22 Ago 2004 11:54
Duvida com HASH
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
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
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Duvida com HASH
Olá!
Já tem no xHarbour 1.2 Veja seu Changelog.
Saudações,
Itamar M. Lins Jr.
Já tem no xHarbour 1.2 Veja seu Changelog.
Código: Selecionar todos
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
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
Duvida com HASH
Olá!
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.Itamar M. Lins Jr. escreveu:Já tem no xHarbour 1.2 Veja seu Changelog.
No xHarbour a função chama-se Hash() ou {=>}andersoncamilo escreveu:hb_JsonDecode() e hb_hash()
Código: Selecionar todos
// 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)
Alexandre Santos (AlxSts)
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Duvida com HASH
Olá!
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.
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.Depois vi que este guia é de 2006/2007.
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.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Duvida com HASH
Olá!
Saudações,
Itamar M. LIns Jr.
No Harbour temos as duas. hash()(hbcompat.ch) e hb_hash()No xHarbour a função chama-se Hash() ou {=>}
Saudações,
Itamar M. LIns Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- Linguagemclipper
- Usuário Nível 3

- Mensagens: 240
- Registrado em: 16 Abr 2016 17:33
- Localização: Maceió/AL
- Contato:
Duvida com HASH
Eu até achei esses 2 arquivos aí fuçando na web:
Mas, não conseguí a respectiva LIB nem compilar ela.2 + include/hbjson.h
3 + source/rtl/hbjson.c
Usando xHarbour v1.2.3 Rev. 10264 + BCC 5.8, Elchs' LetoDBf, DBFCDX e SIBRA para imprimir relatórios.
- Linguagemclipper
- Usuário Nível 3

- Mensagens: 240
- Registrado em: 16 Abr 2016 17:33
- Localização: Maceió/AL
- Contato:
Duvida com HASH
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.
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.