Usuário com melhor resposta
Deserializing JSON using c#

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!
Respostas
-
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.
- Marcado como Resposta João Vitor Araújo sexta-feira, 4 de janeiro de 2019 03:33
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
-
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.
- Marcado como Resposta João Vitor Araújo sexta-feira, 4 de janeiro de 2019 03:33