Nesse vídeo demonstraremos em como utilizar a função ArrToJson, que pega um Array e transforma em uma string no formato JSON.
Abaixo o código fonte desenvolvido para o exemplo em vídeo acima:
//Bibliotecas #Include "TOTVS.ch" /*/{Protheus.doc} User Function zExe040 Exemplo de função que converte um Array para uma String em JSON @type Function @author Atilio @since 28/11/2022 @obs Função ArrToJson Parâmetros + Array que será convertido para uma String em JSON Retorno + Texto da String em JSON **** Apoie nosso projeto, se inscreva em https://www.youtube.com/TerminalDeInformacao **** /*/ User Function zExe040() Local aArea := FWGetArea() Local aDados := {} Local cResult := "" //Adiciona informações no Array aAdd(aDados, {"Site", "Terminal de Informação"}) aAdd(aDados, {"URL", "https://terminaldeinformacao.com"}) //Transforma o Array em uma String JSON cResult := ArrToJson(aDados) //Mostra o resultado FWAlertInfo("cResult é " + cResult, "Resultado do ArrToJson") FWRestArea(aArea) Return
Bom pessoal, por hoje é só.
Abraços e até a próxima.
Professor, boa tarde! como ficaria para mais de um elemento?
Bom dia Julio, tudo joia?
Você quer dizer, tipo um array multidimensional com várias linhas e colunas? Se sim, o ideal não é usar a ArrToJson, mas usar direto na JsonObject. Abaixo um exemplo, conforme a resposta que enviamos recentemente no nosso grupo do WhatsApp:
[…]
//passo 1, crie o objeto JSON
jResponse := JsonObject():New()
//passo 2, declare um array dentro dele
jResponse[‘objects’] := {}
//passo 3, faça seu laço de repetição, e de o aAdd nesse array
While ! QRY_TAB->(EoF())
nAtual++
oRegistro := JsonObject():New()
oRegistro[‘cod’] := (cAliasWS)->B1_COD
oRegistro[‘desc’] := (cAliasWS)->B1_DESC
oRegistro[‘tipo’] := (cAliasWS)->B1_TIPO
aAdd(jResponse[‘objects’], oRegistro)
QRY_TAB->(DbSkip())
EndDo
//passo 4, transforme o objeto JSON em String
cSuaString := jResponse:toJSON()
[…]
Uma observação importante, é que o trecho acima foi gerado pelo Autumn Code Maker, onde você pode criar seus WebServices em poucos passos (PUT, POST, DELETE e GET), nesse link tem um exemplo em vídeo: https://terminaldeinformacao.com/2022/09/15/como-criar-uma-aplicacao-rest-em-advpl-em-poucos-passos/
Um grande abraço.
Salvou meu dia!
Bom dia Rafael, tudo joia?
Opa, obrigado pelo comentário.
Um grande abraço.