Jump to content

Como acessar variável contendo informações em json


porter
Ir para a Solução Solucionado por Kleverson Cruz,

Postagens Recomendadas

Olá pessoal,,
Nessa rotina, estou tentando acessar a variável mun, essa variável, contém as seguintes informações, o que há de errado nessa rotina:

Citação

{
   "retorno": {
   "status_processamento": "3",
   "status": "OK",
   "nota_fiscal": {
   "id": "143184589",
   }
}

// Rotina usada

var client = new RestClient(apiUrl);
var request = new RestRequest(Method.POST);

request.AddParameter("token", apiKey);
request.AddParameter("id", id);
request.AddParameter("formato", "JSON");

IRestResponse response = client.Execute(request);

if (response.StatusCode == HttpStatusCode.OK)
{
string content = response.Content;
string teste = content;
var mun = JsonConvert.DeserializeObject(teste);

// Nessa linha, não consigo acessar os dados contidos na variavel mun
mun.

// VAI CRIAR O ARQUIVO json NESSA PASTA
string path = @"C:\TESTE\NFISCAL.json";

// CRIA-SE O ARQUIVO EM C:\TESTE\NFISCAL.json
using (var sw = File.CreateText(path))
{
sw.WriteLine(value: mun);
}

}
else
{
}

Windows Form, C#

Obrigado.

Link to comment
Compartilhe em outros sites

  • porter mudou o título para Como acessar variável contendo informações em json
  • Solução

Opa @porter, beleza?

Ao executar JsonConvert.DeserializeObject, ele retornará um objeto genérico (object). Isso significa que você não terá um tipo específico para trabalhar e acessar os dados do JSON.

Para conseguir acessar os valores você pode criar uma classe equivalente ao JSON e especificar o tipo de objeto para o qual deseja desserializar informando o argumento no método DeserializeObject:

NotaFiscal notaFiscal = JsonConvert.DeserializeObject<NotaFiscal>(content);
string idDaNota = notaFiscal.id;

 

Outra opção é usar os tipos dynamic(não tão recomendado, pois não há verificação de tipo rs):

dynamic jsonData = JsonConvert.DeserializeObject(content);
string status_processamento = jsonData.retorno.status_processamento;

 

 

  • Curtir 1
Link to comment
Compartilhe em outros sites

Crie uma conta ou entre para comentar 😀

Você precisa ser um membro para deixar um comentário.

Crie a sua conta

Participe da nossa comunidade, crie sua conta.
É bem rápido!

Criar minha conta agora

Entrar

Você já tem uma conta?
Faça o login agora.

Entrar agora


×
×
  • Create New...