Serialização e desserialização JSON
Converte texto JSON em objeto e devolve uma representação textual.
Visão geral
FromJson popula um JsonObject e retorna Nil no sucesso ou texto de erro na falha; não retorna o objeto populado. Só leia propriedades depois de confirmar esse resultado. ToJson gera a representação textual, cuja ordem de propriedades pode diferir da entrada. Validar a sintaxe não valida o contrato de negócio: confira campos, tipos, tamanhos e autorização antes de usar os dados. Datas devem seguir um formato explícito do contrato, sem depender do formato visual do Protheus. O exemplo usa somente dados fictícios e não imprime o conteúdo de entradas externas. (Fontes: refs. 1–3.)
Exemplo comentado
#Include "Protheus.ch"
User Function Ed647()
Local oDados := JsonObject():New()
Local xErro := oDados:FromJson('{"id":"ED647","active":true}')
Local cJson := ""
// Nil indica sucesso; um texto indica falha de parse.
If ValType(xErro) == "U"
cJson := oDados:ToJson()
ConOut(cJson)
Else
ConOut("JSON_INVALIDO")
EndIf
FreeObj(oDados)
Return NilNo contrato documentado, serializa id e active; a ordem das propriedades não é garantida. Não há acesso ao banco. Em revisão: exemplo editorial não compilado nem executado em Protheus. Conferir includes, release, RDD e contexto antes de homologar.
- Teste JSON inválido, campo ausente, null e tipo incorreto. Não montar JSON por concatenação de entrada nem registrar segredos no erro.
- Em revisão: exemplo editorial não compilado nem executado em Protheus. Conferir includes, release, RDD e contexto antes de homologar.

Comentários
Ainda não há comentários aprovados.
Entre com Google ou Microsoft para comentar.