Histórico da Página
...
Bloco de código | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
#include 'protheus.ch'
User Function JSon()
Local oJson := Nil
Local strJson1 := '{"inteiro":100,"double":10.32,"OK":true,"NOK":false,"NULO":null,"VAZIO":"","ROWS":[{"Valor":5000,"OBJ":{"x":2},"Data":"2014-08-29"}, "ricardo"], "VETOR":[1,2,3,4]}'
Local strJson := Nil
Local lenStrJson := 0
Local aJsonfields := {}
Local nRetParser := 0
Local lRet := .F.
Local oJHM := .F.
Local xGet := Nil
Local cGet := Nil
// Cria o objeto para fazer o parser do Json
oJson := tJsonParser():New()
// -------------------------------------------------------------------
strJson = strJson1
lenStrJson := Len(strJson)
// Faz o Parser da mensagem JSon e extrai para Array (aJsonfields) e cria tambem um HashMap para os dados da mensagem (oJHM)
lRet = oJson:Json_Hash(strJson, lenStrJson, @aJsonfields, @nRetParser, @oJHM)
If ( lRet == .F. )
ConOut("##### [JSON][ERR] " + "Parser com erro" + " MSG len: " + AllTrim(Str(lenStrJson)) + " bytes lidos: " + AllTrim(Str(nRetParser)))
ConOut("Erro a partir: " + SubStr(strJson, (nRetParser+1)))
Else
ConOut("[JSON] "+ "+++++ PARSER OK num campos: " + AllTrim(Str(Len(aJsonfields))) + " MSG len: " + AllTrim(Str(lenStrJson)) + " bytes lidos: " + AllTrim(Str(nRetParser)))
// Se nao for utilizar aJsonfields, libere o vetor
aJsonfields := {}
// Obtem o valor dos campos usando a chave
cGet := "inteiro"
lRet := HMGet(oJHM, cGet, xGet)
If (lRet)
VarInfo("c->", xGet)
Else
ConOut("ERRO ao obter: " + cGet)
EndIf
cGet := "ROWS[1]"
lRet := HMGet(oJHM, cGet, xGet)
If (lRet)
VarInfo("d->", xGet)
Else
ConOut("ERRO ao obter: " + cGet)
EndIf
EndIf
Return |
...
Totvs Application Server com release igual ou superior a 7.00.131227A
Veja também
...
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas