Duvida sobre toJsonFile()

Estou tentando gravar um arquivo json em disco usando toJsonFile e busquei informação no TDN e lá tem o codigo abaixo:


# include tlpp-core.th

function u_gravaJsonFile()

local cPathAndFile  := 'C:\tlppcore\tojsonfile.txt' as character
local oJsonObject   := JSONObject():New() as json
local xReturn       := Nil

oJsonObject := {"testetojsonfile" : { "var1" : "ola", "var2": "olaola", "var3": "olaolaola" }

xReturn := oJsonObject:toJsonFile(cPathAndFile)

if valType(xReturn) == "U"
    conout("Arquivo: "+cPathAndFile+" criado com sucesso")
else
    conout("Erro: "+cValToChar(xReturn)+" na gravacao do arquivo: "+cPathAndFile)
endif

freeObj(oJsonObject)

return

Esse exemplo deveria funcionar mesmo ?

variavel

local oJsonObject := JSONObject():New() as json

Depois gravá-la ?

oJsonObject := {"testetojsonfile" : { "var1" : "ola", "var2": "olaola", "var3": "olaolaola" }

xReturn := oJsonObject:toJsonFile(cPathAndFile)

Segue o link https://tdn.totvs.com/display/tec/toJsonFile

1 curtida

eu usaria o memowrite, vai direto ao ponto.

O exemplo tem dois pequenos erros:

  1. o include deveria estar assim: #include “tlpp-core.th”
  2. o objeto json está faltando uma chave de fechamento no final:
    oJsonObject := {“testetojsonfile” : { “var1” : “ola”, “var2”: “olaola”, “var3”: “olaolaola” }}

Fora isso funciona perfeitamente, poupa até um pouco de trabalho usando um comando só para fazer a gravação. De outra forma precisaria fazer assim: MemoWrite(cFile,oJsonObject:toJson())

Legal que também tem um método para carregar direto de arquivo fromJsonFile()
https://tdn.totvs.com/display/tec/fromJsonFile
Isso é bem prático! Vivendo e aprendendo.

Olá,

O exemplo está com um erro de sintaxe no JSON:

oJsonObject := {"testetojsonfile" : { "var1" : "ola", "var2": "olaola", "var3": "olaolaola" }

Corrigindo o mesmo, para fechar a primeira chave aberta:

oJsonObject := {"testetojsonfile" : { "var1" : "ola", "var2": "olaola", "var3": "olaolaola" }}

Aí sim, o exemplo deveria funcionar corretamente, claro, é necessário verificar se o diretório existe, se você tem permissão de gravação etc, fora essas questões, o método toJsonFile deve salvar o valor do JSON em arquivo, caso isso não ocorra, é necessário abrir uma issue de manutenção junto da equipe de Tecnologia da TOTVS.