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 frazato » 09 Jan 2017 13:41

Boa tarde! estou tendo que fazer a integração com o sistema "meus pedidos" que faz a parte de venda externa via tablet e trata arquivos em formato JSON, até gera os arquivos ok, o problema e o retorno do pedido que também retorna um arquivo JSON, vi uma função o harbour que faz a conversão para arquivo HASH até ai blz , problema é que não estou conseguindo fazer o mesmo troca de "elemento" tipo "items" e codigo de itens para adicionar em meu dbf.

//---------------------------------------------------------
Function Main()
Local cLinha := ''
cLinha := ;
''+;
   [ {]+;
    ["id": 1,]+;
     ["cliente_id": 123,]+;
     ["observacoes": "Favor faturar urgente.",]+;
      '"items": {'+;
        ["id": 5000,]+;
         ["produto_id": 1001]+;
           '},'+;
           [{"id": 8000,"produto_id": 1002}]+;
           ' }'
           
Alert( cLinha)

cJSON := cLinha
hJSON := {}//hb_hash()
hb_JSONDecode( cJSON, @hJSON )

//hb_HKeepOrder( hJSON, .T. )

? Len(hJSON)
? hJSON['cliente_id']   
? hJSON['observacoes']   
? hJSON['items']   

If !hb_HHasKey( hJSON, 'items','produto_id')
    Alert('Nao tem a chave items')
Else
*?  hJSON['items','produto_id']
*?  Len(hJSON['items'])//,'produto_id'])
*For i:= 1 to Len(hJSON['items'])
*   ? hJSON['items','produto_id']
*   *? Hb_hpos(hJSON,'produto_id')
*Next
Endif
element := 0
hTeste  := hJSON

FOR EACH element IN hTeste['items']
         *? element['items','produto_id']                          // valor do componente, neste caso 1 e 2
         *? element:__enumKey()     //neste caso é apresentado a chave da hash, neste caso "a" e "b"
         ? hTeste['items','produto_id']
         *? hb_hPos(hTeste['items','produto_id'])
         *? hb_OsNewLine()
         ? hb_HDEL( hTeste,'produto_id')
         ? HB_HPOS( hTeste,'items' )
         ? Len(hTeste['items'])
   
NEXT

Return nil


Preciso fazer ele pular como se fosse um arrays.

Frazato
frazato
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 170
Data de registro: 08 Jul 2004 07:45
Curtiu: 0 vez
Mens.Curtidas: 3 vezes

Duvida com HASH

Mensagempor janio » 09 Jan 2017 14:27

Frazato,

O sistema é "meus pedidos" ou "suas vendas" (https://www.suasvendas.com/) ?

Semana passada peguei um cliente que irá fazer a parte de vendas por tablet através do "suas vendas" e o sistema de gestão será o nosso. Mas ainda não deu nem tempo de ver a parte de integração...

Acompanhando esse tópico...

Janio
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar de usuário

janio
Colaborador

Colaborador
 
Mensagens: 1791
Data de registro: 06 Jul 2004 07:43
Cidade/Estado: UBAJARA - CE
Curtiu: 7 vezes
Mens.Curtidas: 47 vezes

Duvida com HASH

Mensagempor frazato » 09 Jan 2017 14:36

é meus pedidos.com.br

https://meuspedidos.com.br/153989/integ ... parceiros/

o meu cliente gostou do sistema, também achei legal.

Frazato
frazato
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 170
Data de registro: 08 Jul 2004 07:45
Curtiu: 0 vez
Mens.Curtidas: 3 vezes

Duvida com HASH

Mensagempor wmanesco » 09 Jan 2017 15:25

Frazato, não entendi direito o problema..

É quando você tem que mandar um json, ou o problema é em ler o retorno do app?

Se for para enviar, o hb também a função hb_JSONEncode(hJSON), ou seja, poderia ser assim:

hJSON := hb_Hash()
hItems := hb_Hash()

hItems["..."] //aqui coloca o json de itens

hJSON["id"] := 1
hJSON["items"] := hItems
//se items for array, também da para fazer tipo

hJSON["items"] := { hItems, hItems2 }

cJSON := hb_JSONEncode(hJSON)


Como disse não sei se o problema é esse..
William Manesco
Harbour 3.x | Fivewin | BCC | MySQL (TDolphin) | HBQT | HBIDE | Atom
wmanesco
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 118
Data de registro: 09 Set 2016 13:18
Cidade/Estado: ITAJAI - SC
Curtiu: 13 vezes
Mens.Curtidas: 4 vezes

Duvida com HASH

Mensagempor frazato » 09 Jan 2017 15:29

Meu problema é para importar o pedido gerado ( JSON) para meu sistema, imagina que num pedido veem varios itens no mesmo JSON e preciso tratar cada elemento como se fosse um item, tipo assim!

For i:= 1 to Len(Itens)
? "itens"+Str(i,2) +' Produto '+Itens[i,2] // 'Codigo'
Next

Frazato
frazato
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 170
Data de registro: 08 Jul 2004 07:45
Curtiu: 0 vez
Mens.Curtidas: 3 vezes

Duvida com HASH

Mensagempor wmanesco » 09 Jan 2017 15:41

Me parece que este json está incorreto, olha ele corrigido (no meu ponto de vista), parece que deu certo..

//---------------------------------------------------------
Function Main()
Local cLinha := ''
cLinha := ;
''+;
   [ {]+;
    ["id": 1,]+;
     ["cliente_id": 123,]+;
     ["observacoes": "Favor faturar urgente.",]+;
      '"items": [ {'+;
            ["id": 5000,]+;
            ["produto_id": 1001]+;
          '},'+;
          '{"id": 8000,"produto_id": 1002}'+;
           ']}'
           
hb_memoWrit("teste.json", cLinha)         //apenas para visualização
Alert( cLinha)

cJSON := cLinha
hJSON := {}//hb_hash()
hb_JSONDecode( cJSON, @hJSON )

element := 0
hTeste  := hJSON

FOR EACH element IN hTeste['items']

   ? element

   ? element["id"]
   ? element["produto_id"]
   
NEXT

Return nil
William Manesco
Harbour 3.x | Fivewin | BCC | MySQL (TDolphin) | HBQT | HBIDE | Atom
wmanesco
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 118
Data de registro: 09 Set 2016 13:18
Cidade/Estado: ITAJAI - SC
Curtiu: 13 vezes
Mens.Curtidas: 4 vezes

Duvida com HASH

Mensagempor frazato » 09 Jan 2017 15:54

:{ :{ :{ :{ :{
ShoW!

deu certo, acho que eu mexi no JSON, agora tá certinho, muito obrigado!

Frazato
frazato
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 170
Data de registro: 08 Jul 2004 07:45
Curtiu: 0 vez
Mens.Curtidas: 3 vezes

Duvida com HASH

Mensagempor wmanesco » 09 Jan 2017 17:59

:D
William Manesco
Harbour 3.x | Fivewin | BCC | MySQL (TDolphin) | HBQT | HBIDE | Atom
wmanesco
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 118
Data de registro: 09 Set 2016 13:18
Cidade/Estado: ITAJAI - SC
Curtiu: 13 vezes
Mens.Curtidas: 4 vezes

Duvida com HASH

Mensagempor fladimir » 09 Jan 2017 19:55

Não precisaria meu comentário mas faço questão...

Entrei pra ver do q se tratava e vi q era um assunto q não entendia mas vou acompanhando para aprender e essa interação q vemos e auxilio dos colegas e quando conseguimos ver a questão resolvida nos motiva.

Parabéns colegas.

:-Y :-Y :-Y
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


DESKTOP CONSOLE Harbour | MinGW | DBF | CDX | FastReport | MySQL
DESKTOP VISUAL... Harbour | MinGW | Xailer | MariaDB Nativo | FastReport
MOBILE Android/IOS e WEB - Windev Mobile 22
Avatar de usuário

fladimir
Colaborador

Colaborador
 
Mensagens: 2341
Data de registro: 15 Nov 2006 19:21
Curtiu: 25 vezes
Mens.Curtidas: 132 vezes

Duvida com HASH

Mensagempor frazato » 18 Jan 2017 16:45

Boa tarde!
Este é um arquivo JSON que tem os dados de pedidos e itens de pedidos, quando tenho apenas um pedido consigo importar através da rotina acima, mais tenho que retirar os "[]" do inicio e final do arquivo, agora não consigo fazer a leitura do arquivo JSON com mais de um pedido, que coisa de doido isso, saudade de usar arquivo txt ou xml esse JSON tá me deixando doido.

Segue arquivo em anexo para quem possa me dar uma ajudinha se possivel.

Frazato
    {
        "cliente_id": 2209938,
        "condicao_pagamento": "28dias",
        "forma_pagamento_id": 0,
        "cliente_nome_fantasia": "",
        "cliente_complemento": "",
        "data_emissao": "2017-01-17",
        "total": 224.41,
        "id": 1558742,
        "representada_id": 44406,
        "transportadora_id": 0,
        "representada_razao_social": "JAF DESENVOLVIMENTOS",
        "transportadora_nome": "",
        "cliente_suframa": "",
        "nome_contato": "",
        "cliente_inscricao_estadual": "000000000000000",
        "cliente_bairro": ".",
        "status": "2",
        "condicao_pagamento_id": 0,
        "cliente_estado": "",
        "observacoes": "mensagem adicionais",
        "numero": 1,
        "ultima_alteracao": "2017-01-17 09:15:40",
        "representada_nome_fantasia": "JAF DESENVOLVIMENTOS",
        "criador_id": 36564,
        "cliente_cep": "",
        "cliente_rua": ".",
        "items": [
            {
                "tipo_ipi": "P",
                "quantidade": 4.0,
                "preco_bruto": 3.69,
                "tabela_preco_id": 0,
                "ipi": 0.0,
                "observacoes": "",
                "id": 10735289,
                "produto_nome": "ABACAXI PEROLA UN",
                "produto_id": 10966771,
                "quantidade_grades": [
                    {
                        "cor": "Azul",
                        "quantidade": 2.0,
                        "tamanho": null
                    },
                    {
                        "cor": "Verde",
                        "quantidade": 2.0,
                        "tamanho": null
                    }
                ],
                "excluido": false,
                "cotacao_moeda": 1.0,
                "st": 0.0,
                "subtotal": 14.76,
                "produto_codigo": "02002",
                "preco_liquido": 3.69,
                "descontos": []
            },
            {
                "tipo_ipi": "P",
                "quantidade": 35.0,
                "preco_bruto": 5.99,
                "tabela_preco_id": 0,
                "ipi": 0.0,
                "observacoes": "teste",
                "id": 10735290,
                "produto_nome": "BANANA MACA KG",
                "produto_id": 10966780,
                "quantidade_grades": [
                    {
                        "cor": "Azul",
                        "quantidade": 12.0,
                        "tamanho": null
                    },
                    {
                        "cor": "Verde",
                        "quantidade": 23.0,
                        "tamanho": null
                    }
                ],
                "excluido": false,
                "cotacao_moeda": 1.0,
                "st": 0.0,
                "subtotal": 209.65,
                "produto_codigo": "02010",
                "preco_liquido": 5.99,
                "descontos": []
            }
        ],
        "cliente_cidade": ".",
        "extras": [],
        "contato_nome": "",
        "cliente_cnpj": "",
        "cliente_razao_social": "DORIVAL BATISTA DE LIMA",
        "cliente_numero": null
    },
    {
        "cliente_id": 2213081,
        "condicao_pagamento": "resr",
        "forma_pagamento_id": 0,
        "cliente_nome_fantasia": "supermercado la villa ltda",
        "cliente_complemento": "",
        "data_emissao": "2017-01-18",
        "total": 209.32,
        "id": 1558753,
        "representada_id": 44406,
        "transportadora_id": 42367,
        "representada_razao_social": "JAF DESENVOLVIMENTOS",
        "transportadora_nome": "proprio",
        "cliente_suframa": "",
        "nome_contato": "",
        "cliente_inscricao_estadual": "495097613116",
        "cliente_bairro": "JARDIM MATILDE",
        "status": "2",
        "condicao_pagamento_id": 0,
        "cliente_estado": "",
        "observacoes": "",
        "numero": 2,
        "ultima_alteracao": "2017-01-18 15:39:28",
        "representada_nome_fantasia": "JAF DESENVOLVIMENTOS",
        "criador_id": 36564,
        "cliente_cep": "",
        "cliente_rua": "R DO EXPEDICIONARIO",
        "items": [
            {
                "tipo_ipi": "P",
                "quantidade": 6.0,
                "preco_bruto": 2.22,
                "tabela_preco_id": 0,
                "ipi": 0.0,
                "observacoes": "",
                "id": 10735303,
                "produto_nome": "AMENDOIM DESC SALG 150GR YOKI",
                "produto_id": 10968644,
                "quantidade_grades": [],
                "excluido": false,
                "cotacao_moeda": 1.0,
                "st": 0.0,
                "subtotal": 13.32,
                "produto_codigo": "00803",
                "preco_liquido": 2.22,
                "descontos": []
            },
            {
                "tipo_ipi": "P",
                "quantidade": 5.0,
                "preco_bruto": 1.0,
                "tabela_preco_id": 0,
                "ipi": 0.0,
                "observacoes": "",
                "id": 10735304,
                "produto_nome": "CORANTE EM PO VERMELHO REGINA 5GR",
                "produto_id": 10967931,
                "quantidade_grades": [],
                "excluido": false,
                "cotacao_moeda": 1.0,
                "st": 0.0,
                "subtotal": 5.0,
                "produto_codigo": "00097",
                "preco_liquido": 1.0,
                "descontos": []
            },
            {
                "tipo_ipi": "P",
                "quantidade": 1.0,
                "preco_bruto": 1.0,
                "tabela_preco_id": 0,
                "ipi": 0.0,
                "observacoes": "",
                "id": 10735305,
                "produto_nome": "CORANTE EM PO VERDE REGINA 5GR",
                "produto_id": 10967930,
                "quantidade_grades": [],
                "excluido": false,
                "cotacao_moeda": 1.0,
                "st": 0.0,
                "subtotal": 1.0,
                "produto_codigo": "00096",
                "preco_liquido": 1.0,
                "descontos": []
            },
            {
                "tipo_ipi": "P",
                "quantidade": 2.0,
                "preco_bruto": 1.0,
                "tabela_preco_id": 0,
                "ipi": 0.0,
                "observacoes": "",
                "id": 10735306,
                "produto_nome": "CORANTE EM PO AZUL REGINA 5GR",
                "produto_id": 10967928,
                "quantidade_grades": [],
                "excluido": false,
                "cotacao_moeda": 1.0,
                "st": 0.0,
                "subtotal": 2.0,
                "produto_codigo": "00094",
                "preco_liquido": 1.0,
                "descontos": []
            },
            {
                "tipo_ipi": "P",
                "quantidade": 3.0,
                "preco_bruto": 1.0,
                "tabela_preco_id": 0,
                "ipi": 0.0,
                "observacoes": "",
                "id": 10735307,
                "produto_nome": "CORANTE EM PO AMARELO REGINA 5GR",
                "produto_id": 10967929,
                "quantidade_grades": [],
                "excluido": false,
                "cotacao_moeda": 1.0,
                "st": 0.0,
                "subtotal": 3.0,
                "produto_codigo": "00095",
                "preco_liquido": 1.0,
                "descontos": []
            },
            {
                "tipo_ipi": "P",
                "quantidade": 50.0,
                "preco_bruto": 3.7,
                "tabela_preco_id": 0,
                "ipi": 0.0,
                "observacoes": "",
                "id": 10735308,
                "produto_nome": "FERMENTO FRESCO BIO LEVAPAN 500 GR",
                "produto_id": 10968200,
                "quantidade_grades": [],
                "excluido": false,
                "cotacao_moeda": 1.0,
                "st": 0.0,
                "subtotal": 185.0,
                "produto_codigo": "00366",
                "preco_liquido": 3.7,
                "descontos": []
            }
        ],
        "cliente_cidade": "OURINHOS",
        "extras": [],
        "contato_nome": "",
        "cliente_cnpj": "",
        "cliente_razao_social": "SUPERMERCADO LA VILLA LTDA",
        "cliente_numero": null
    },
    {
        "cliente_id": 2212195,
        "condicao_pagamento": "rrss",
        "forma_pagamento_id": 0,
        "cliente_nome_fantasia": "PADARIA PAO DE ACUCAR",
        "cliente_complemento": "",
        "data_emissao": "2017-01-18",
        "total": 22.3,
        "id": 1558755,
        "representada_id": 44406,
        "transportadora_id": 42367,
        "representada_razao_social": "JAF DESENVOLVIMENTOS",
        "transportadora_nome": "proprio",
        "cliente_suframa": "",
        "nome_contato": "",
        "cliente_inscricao_estadual": "209.308.515.118",
        "cliente_bairro": "VILA CARMEM",
        "status": "2",
        "condicao_pagamento_id": 0,
        "cliente_estado": "",
        "observacoes": "",
        "numero": 3,
        "ultima_alteracao": "2017-01-18 17:24:20",
        "representada_nome_fantasia": "JAF DESENVOLVIMENTOS",
        "criador_id": 36564,
        "cliente_cep": "",
        "cliente_rua": "AV CRUZEIRO DO SUL, 14-60",
        "items": [
            {
                "tipo_ipi": "P",
                "quantidade": 2.0,
                "preco_bruto": 1.7,
                "tabela_preco_id": 0,
                "ipi": 0.0,
                "observacoes": "",
                "id": 10735311,
                "produto_nome": "BAT OND CEB E SAL 100GR YOKITOS",
                "produto_id": 10968502,
                "quantidade_grades": [],
                "excluido": false,
                "cotacao_moeda": 1.0,
                "st": 0.0,
                "subtotal": 3.4,
                "produto_codigo": "00662",
                "preco_liquido": 1.7,
                "descontos": []
            },
            {
                "tipo_ipi": "P",
                "quantidade": 2.0,
                "preco_bruto": 1.45,
                "tabela_preco_id": 0,
                "ipi": 0.0,
                "observacoes": "",
                "id": 10735312,
                "produto_nome": "BAT LISA NAT 50GR YOKITOS",
                "produto_id": 10968642,
                "quantidade_grades": [],
                "excluido": false,
                "cotacao_moeda": 1.0,
                "st": 0.0,
                "subtotal": 2.9,
                "produto_codigo": "00801",
                "preco_liquido": 1.45,
                "descontos": []
            },
            {
                "tipo_ipi": "P",
                "quantidade": 2.0,
                "preco_bruto": 1.18,
                "tabela_preco_id": 0,
                "ipi": 0.0,
                "observacoes": "",
                "id": 10735313,
                "produto_nome": "BAT LISA FRANGO GREL 50GR YOKITOS",
                "produto_id": 10968639,
                "quantidade_grades": [],
                "excluido": false,
                "cotacao_moeda": 1.0,
                "st": 0.0,
                "subtotal": 2.36,
                "produto_codigo": "00798",
                "preco_liquido": 1.18,
                "descontos": []
            },
            {
                "tipo_ipi": "P",
                "quantidade": 1.0,
                "preco_bruto": 5.24,
                "tabela_preco_id": 0,
                "ipi": 0.0,
                "observacoes": "",
                "id": 10735314,
                "produto_nome": "AMENDOIM 1 KG",
                "produto_id": 10967819,
                "quantidade_grades": [],
                "excluido": false,
                "cotacao_moeda": 1.0,
                "st": 0.0,
                "subtotal": 5.24,
                "produto_codigo": "00006",
                "preco_liquido": 5.24,
                "descontos": []
            },
            {
                "tipo_ipi": "P",
                "quantidade": 2.0,
                "preco_bruto": 1.2,
                "tabela_preco_id": 0,
                "ipi": 0.0,
                "observacoes": "",
                "id": 10735315,
                "produto_nome": "ALIM SOJA MORANGO 200ML MAIS VIDA",
                "produto_id": 10968693,
                "quantidade_grades": [],
                "excluido": false,
                "cotacao_moeda": 1.0,
                "st": 0.0,
                "subtotal": 2.4,
                "produto_codigo": "00851",
                "preco_liquido": 1.2,
                "descontos": []
            },
            {
                "tipo_ipi": "P",
                "quantidade": 3.0,
                "preco_bruto": 1.2,
                "tabela_preco_id": 0,
                "ipi": 0.0,
                "observacoes": "",
                "id": 10735316,
                "produto_nome": "ALIM SOJA MARACUJA 200ML MAIS VIDA",
                "produto_id": 10968916,
                "quantidade_grades": [],
                "excluido": false,
                "cotacao_moeda": 1.0,
                "st": 0.0,
                "subtotal": 3.6,
                "produto_codigo": "01068",
                "preco_liquido": 1.2,
                "descontos": []
            },
            {
                "tipo_ipi": "P",
                "quantidade": 2.0,
                "preco_bruto": 1.2,
                "tabela_preco_id": 0,
                "ipi": 0.0,
                "observacoes": "",
                "id": 10735317,
                "produto_nome": "ALIM SOJA MANGA 200ML MAIS VITA",
                "produto_id": 10968918,
                "quantidade_grades": [],
                "excluido": false,
                "cotacao_moeda": 1.0,
                "st": 0.0,
                "subtotal": 2.4,
                "produto_codigo": "01070",
                "preco_liquido": 1.2,
                "descontos": []
            }
        ],
        "cliente_cidade": "BAURU",
        "extras": [],
        "contato_nome": "",
        "cliente_cnpj": "",
        "cliente_razao_social": "MINAMOTO E MINAMOTO LTDA",
        "cliente_numero": null
    }
frazato
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 170
Data de registro: 08 Jul 2004 07:45
Curtiu: 0 vez
Mens.Curtidas: 3 vezes

Duvida com HASH

Mensagempor wmanesco » 19 Jan 2017 08:08

Acho que é o seguinte:

se o JSON veio assim:

[
   ...
]


Quando você usar o hb_jsondecode() ele vai te retornar um array de hash, algo assim:

No caso seus pedidos estariam nesse array...
   HB_JSONDecode(cJSON, @aJSON)

   ? hb_isArray(aJSON) //deve ser true

   FOR EACH hPedido IN aJSON
      ? hPedido["client_id"]
   NEXT


Desse jeito você não deve retirar o "[]" pois ele que indica que é um array, e assim permite colocar vários pedidos em um unico JSON
William Manesco
Harbour 3.x | Fivewin | BCC | MySQL (TDolphin) | HBQT | HBIDE | Atom
wmanesco
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 118
Data de registro: 09 Set 2016 13:18
Cidade/Estado: ITAJAI - SC
Curtiu: 13 vezes
Mens.Curtidas: 4 vezes

Duvida com HASH

Mensagempor frazato » 19 Jan 2017 14:32

Boa tarde!!
o retorno do json tá igualzinho você falou, mais seu exemplo não funciona da erro, ate consegui ler os numero de pedido mais os itens consegui aparentemente colocar em um array mais não tó dando conta de ler o resultado, de uma olhada fazendo um favor se puder me ajudar agradeço.

 hTeste  := hJSON
          aJSON   := {}//hb_hash()
   
      HB_JSONDecode(cJSON, @aJSON)
   
      ? hb_isArray(aJSON) //deve ser true
      ? Len(ajSon)
      i:= 1
      FOR EACH element IN aJSON
           ? aJSON[i]["cliente_razao_social"]
           aItens := aJSON[i]['items']
           ? hb_isArray(aItens) //deve ser true
           ? Len(aItens)
           For r:= 1 to Len(aItens)
               ? aItens[r]//['items'][1]
           Next
           i++
      NEXT
frazato
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 170
Data de registro: 08 Jul 2004 07:45
Curtiu: 0 vez
Mens.Curtidas: 3 vezes

Duvida com HASH

Mensagempor frazato » 19 Jan 2017 15:48

Resolvido!!! ufa!!! assim funciona!!

Muito obrigado pela ajuda por enquanto.. rs

Frazato

FOR EACH element IN aJSON
           ? aJSON[i]["cliente_razao_social"]
           ? aJSON[i]['items']
           aItens := Hb_Hash()
           aItens = aJSON[i]['items']
           ? Len(aItens := aJSON[i]['items'])
           For r:= 1 to Len(aItens)
             ? 'Quant:'+Str(aItens[r]['quantidade'],8,2)+' Preco unit.:'+Str(aItens[r]['preco_liquido'],9,2)
             ? aItens[r]['produto_codigo']+' '+aItens[r]['produto_nome']
           Next
           i++
      NEXT
frazato
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 170
Data de registro: 08 Jul 2004 07:45
Curtiu: 0 vez
Mens.Curtidas: 3 vezes

Duvida com HASH

Mensagempor wmanesco » 19 Jan 2017 18:03

Funcionando é o que importa =)

A função de decodificar JSON está bem legal, só prestar atenção no JSON...

Quando há JSON dentro de JSON
{
   "item": {"id":1, "desc": "teste"}
}


Será uma Hash assim

? hJSON["item"]["id"]
? hJSON["item"]["desc"]


E também pode ser que tenha arrays para agrupar variados itens

{
   "itens": [ {"id":1, "desc": "teste"}, {"id":2, "desc": "teste2"}]
}


? hJSON["itens"][1]["id"]
? hJSON["itens"][1]["desc"]

? hJSON["itens"][2]["id"]
? hJSON["itens"][2]["desc"]
William Manesco
Harbour 3.x | Fivewin | BCC | MySQL (TDolphin) | HBQT | HBIDE | Atom
wmanesco
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 118
Data de registro: 09 Set 2016 13:18
Cidade/Estado: ITAJAI - SC
Curtiu: 13 vezes
Mens.Curtidas: 4 vezes

Duvida com HASH

Mensagempor frazato » 20 Jan 2017 16:19

Blz!!! vou ficar atento mais por hora tá funcionando, ufa, treco enrolado! to ficando velho não aprendo "comandos" novos.

Valeu muito obrigado!

Frazato
frazato
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 170
Data de registro: 08 Jul 2004 07:45
Curtiu: 0 vez
Mens.Curtidas: 3 vezes

Próximo



Retornar para Harbour

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 1 visitante


Faça uma doação para o forum
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro