Luiz FERNANDO

Pegar retorno de JSON

4 posts in this topic

Pessoal veja se alguém pode me ajudar nesse retorno

{"codigoErro":99,"erro":{"mensagem":"Erro do servidor - tente novamente e se o erro persistir entre em contato com o suporte","logId":"c7a1beb"}}

Tentei usar o exemplo do Amarildo da receita, mais diz que o retorno do JSON não tem elemento array nele, veja meu código.

teste is httpRequest

teste.Method=httpPost

S_URL is string="https://apipefin.scnbrasil.com.br/v1/"

teste.URL=S_URL

resposta is httpResponse= HTTPSend(teste)



IF ErrorOccurred THEN

	Error(ErrorInfo(errFullDetails))

ELSE

	EDT_RESULTADO=resposta..Content

END	



_erro is Structure

	mensagem is string

	logid is string

END



_cadastro is Structure

	codigoerro is string

	erro is array of _erro

END



stEstrutura_cadastro is _cadastro

Deserialize(stEstrutura_cadastro,resposta..Content,psdJSON)     // aqui diz que json não esta retornando nenhuma array

Info(stEstrutura_cadastro.codigoerro)  // aqui o retorno esta ok



FOR EACH _erro OF stEstrutura_cadastro.erro  

	Info(_erro.mensagem)

	Info(_erro.logid)

END

o que percebi que no caso da receita quando o retorno vem em array tem um ( [ ) no inicio e outro  o final ( ] )

{ "atividade_principal":[{"text":"Desenvolvimento de programas de computador sob encomenda","code":"62.01-5-01"}] }

 

1 person likes this

Share this post


Link to post
Share on other sites
Em 19/04/2021 at 1:51 PM, Luiz FERNANDO disse:

 

// Esse é um trecho do seu código:
_erro is Structure
	mensagem is string
	logid is string
END

_cadastro is Structure
	codigoerro is string
	erro is array of _erro //-----------> O problema esta aki, observe q vc criou o membro da estrutura q irá compor o JSON com o nome de "erro"
                              //-----------> O correto é "error", faça a alteração e veja se resolve.
END
stEstrutura_cadastro is _cadastro

Deserialize(stEstrutura_cadastro,resposta..Content,psdJSON)     // aqui diz que json não esta retornando nenhuma array
Info(stEstrutura_cadastro.codigoerro)  // aqui o retorno esta ok

 

 

Comentei no seu código onde vc tem q alterar pra ver se resolve o problema.

2 people like this

Share this post


Link to post
Share on other sites

Sua estrutura esta errada "erro" não é um Array ele é um objeto apenas

_cadastro is Structure

	codigoerro is string

	erro is _erro 

END
3 people like this

Share this post


Link to post
Share on other sites

Cassiano obg pela sua resposta, com ela parou de dar o erro de sintaxe, porem não entrava na array(só não tinha respondido antes, pois estava tentando aqui)

Vilani vlw pela resposta, com sua dica deu certinho o retorno agora.

o código ficou assim:

teste is httpRequest

teste.Method=httpPost

S_URL is string="https://apipefin.scnbrasil.com.br/v1/"

teste.URL=S_URL

resposta is httpResponse= HTTPSend(teste)



IF ErrorOccurred THEN

	Error(ErrorInfo(errFullDetails))

ELSE

	EDT_RESULTADO=resposta..Content

END	



_erro is Structure

	mensagem is string

	logid is string

END



_cadastro is Structure

	codigoerro is string

	erro is _erro  

END



stEstrutura_cadastro is _cadastro

Deserialize(stEstrutura_cadastro,resposta..Content,psdJSON)

Info(stEstrutura_cadastro.codigoerro)         

Info(stEstrutura_cadastro.erro.mensagem)

Info(stEstrutura_cadastro.erro.logid)



 

1 person likes this

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now