Cria um Parser para tratar mensagens no formato JSon.
Hierarquia
- TJsonParser
Construtores
Propriedades
Métodos
Exemplos
Exemplo 1
#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
Abrangência
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