Tempo aproximado para leitura: 00:02:00 min
Dúvida
É possivel alterar a limitação de 8 decimais da Classe JsonObject?
Ambiente
Cross Segmentos - Backoffice (Linha Protheus) – ADVPL – A partir da versão 12.1.2310
Solução
Para isso, a solução seria utilizando as funções DEC_CREATE que indica a quantidade total de dígitos do número, e a escala indica a quantidade reservada para as casas decimais do número e a função cValToChar para transformar este número em String para passar no JSON.
Observação
Reforçamos que campos do Protheus continuarão recebendo por padrão no máximo 8 casas decimais.
Exemplo:
#include "protheus.ch"
user function FJDEC()
local oJson
local ret
local nCoord1 := DEC_CREATE(-49.354684361, 10, 9)
local nCoord2 := DEC_CREATE(-23.353524586, 10, 9)
local nCoord1Str := cValToChar(nCoord1)
local nCoord2Str := cValToChar(nCoord2)
local cJson := '{"coordenada" : "' + nCoord1Str + '" , "coordenada2" : "' + nCoord2Str + '"}'
Alert(cJson)
oJson := JsonObject():new()
ret := oJson:FromJson(cJson)
if ValType(ret) == "U"
Alert("JsonObject populado com sucesso")
else
Conout("Falha ao popular JsonObject. Erro: " + ret)
endif
FreeObj(oJson)
return
/*
Impressão ao executar o u_FJSucesso():
JsonObject populado com sucesso
*/
Saiba mais
- Classe JsonObject
0 Comentários