JsonObject

Classe TLPP para manipular JSON. Faz parse, serializacao e acesso por chave. Substitui completamente o antigo aHashMap.

Assinatura: JsonObject():new() -> oJson

Retorna: object

JsonObject e a forma moderna de manipular JSON em Protheus. Substitui hacks antigos com array de array. Suporta nested objects, arrays, conversao de e para string.

Sintaxe basica

local oJson as object
oJson := JsonObject():new()

// Criar JSON
oJson['nome']     := 'Mayco'
oJson['idade']    := 30
oJson['ativo']    := .T.
oJson['hobbies']  := {'protheus', 'claude'}

cStr := oJson:toJson()
// Resultado: {"nome":"Mayco","idade":30,"ativo":true,"hobbies":["protheus","claude"]}

Parse de JSON

local oJson as object
oJson := JsonObject():new()
oJson:fromJson('{"cliente":"001","valor":1500.50}')

conout(oJson['cliente'])  // 001
conout(oJson['valor'])    // 1500.50

Nested objects

oJson['endereco'] := JsonObject():new()
oJson['endereco']['rua']     := 'Av. Brasil'
oJson['endereco']['numero']  := 1000

Iterar chaves

local aChaves as array
aChaves := oJson:getNames()
for i := 1 to len(aChaves)
    conout(aChaves[i] + ' = ' + cValToChar(oJson[aChaves[i]]))
next i

Pegadinhas

Exemplos

Parse e acesso

oJson := JsonObject():new()
oJson:fromJson(cJson)
cCliente := oJson['cliente']

Veja também