none
Deserializing JSON using c# RRS feed

  • Pergunta

  • Boa tarde, gente eu to com um certo problema aqui , não estou conseguindo deserializar um json.

    Eu pego a string json , e colo (modo especial no visual studio para criar as classes/objetos)
    e quando vou deserializar ele vem nulo embora a string venha com informações.
    essa é a string json:
    {
    	"status": true,
    	"return": "OK",
    	"result": {
    		"cnpj": "03301417000182",
    		"nome_empresarial": "ORGAMEC ASSESSORIA CONTABIL LTDA ",
    		"situacao_simples_nacional": "Optante pelo Simples Nacional desde 01\/01\/2018  ",
    		"situacao_simei": "NÃO optante pelo SIMEI ",
    		"opcoes_pelo_simples_nacional_periodos_anteriores": [
    			{
    				"data_inicial": "01\/07\/2007",
    				"data_final": "31\/12\/2017",
    				"detalhe": "Excluída por Ato Administrativo praticado pela Receita Federal do Brasil"
    			}
    		],
    		"opcoes_pelo_simei_periodos_anteriores": "Não Existem",
    		"agendamentos_simples_nacional": "Não Existem",
    		"eventos_futuros_simples_nacional": "Não Existem",
    		"eventos_futuros_simei": "Não Existem"
    	}
    }
    o codigo que to utilizando é!
                            WSSimplesN.Result wsresult =new WSSimplesN.Result();
                            var ProdutoJsonString = await response.Content.ReadAsStringAsync();
                            wsresult = JsonConvert.DeserializeObject<WSSimplesN.Result>(ProdutoJsonString);

    as classes e objetos criados:
       public class Rootobject
            {
                public bool status { get; set; }
                public string _return { get; set; }
                public Result result { get; set; }
            }
    
            public class Result
            {
              
                public string cnpj { get; set; }
                public string nome_empresarial { get; set; }
                public string situacao_simples_nacional { get; set; }
                public string situacao_simei { get; set; }
                public Opcoes_Pelo_Simples_Nacional_Periodos_Anteriores[] opcoes_pelo_simples_nacional_periodos_anteriores { get; set; }
                public string opcoes_pelo_simei_periodos_anteriores { get; set; }
                public string agendamentos_simples_nacional { get; set; }
                public string eventos_futuros_simples_nacional { get; set; }
                public string eventos_futuros_simei { get; set; }
            }
    
            public class Opcoes_Pelo_Simples_Nacional_Periodos_Anteriores
            {
                public string data_inicial { get; set; }
                public string data_final { get; set; }
                public string detalhe { get; set; }
            }


    Se alguem puder da um help!


    terça-feira, 18 de dezembro de 2018 16:09

Respostas

Todas as Respostas

  • João Vitor Araújo,

       Posso colocar um código que montei recentemente para podermos comparar?

       Estou buscando dados do ViaCEP.
       Exemplo: "http://viacep.com.br/ws/01001000/json/"

       Esse é o MODEL:

    namespace ConsultarCEP.Servico.Modelo
    {
        public class Endereco
        {
            public string cep { get; set; }
            public string logradouro { get; set; }
            public string complemento { get; set; }
            public string bairro { get; set; }
            public string localidade { get; set; }
            public string uf { get; set; }
            public string unidade { get; set; }
            public string ibge { get; set; }
            public string gia { get; set; }
        }
    }

       E esse é o código que busca os dados do CEP:

    using System.Net; using ConsultarCEP.Servico.Modelo; using Newtonsoft.Json;

    namespace ConsultarCEP.Servico { public class ViaCEPServico { private static string EnderecoURL = "http://viacep.com.br/ws/{0}/json/";

    public static Endereco BuscarEnderecoViaCEP(string cep) { string NovoEnderecoURL = string.Format(EnderecoURL, cep); string Conteudo = "";

    Endereco End = new Endereco(); WebClient wc = new WebClient(); Conteudo = wc.DownloadString(NovoEnderecoURL); End = JsonConvert.DeserializeObject<Endereco>(Conteudo);

    if (End.cep == null) return null;

    return End; } } }

        Você está usando o "Newtonsoft", certo?

    []'s,
    Fabio I.
    • Editado Fabio I terça-feira, 18 de dezembro de 2018 22:51
    terça-feira, 18 de dezembro de 2018 22:50
  • sim estava utilizando newtonsoft, eu tive que criar 2 classes, por que o json da api que eu tinha contratado não era de boa qualidade.
    sexta-feira, 4 de janeiro de 2019 03:33