1
resposta

Deserializar Json

Olá estou tendo problemas em deserializar um json. Aparece a seguinte mensagem de erro: https://imgur.com/a/5xQ2PJn

Basicamente eu tenho a classe cliente:

public class Cliente
    {
            public string Equipe { get; set; }
            public string Clientes { get; set; }
            public string Vendedor { get; set; }
            public string Data_Venda { get; set; }
            public string Valor_Total { get; set; }
            public string Local_Entrega { get; set; }
            public string Estado { get; set; }

            public List<string> ListaArquivo(string conexao)
            {
                Fichario F = new Fichario(conexao);
                if (F.status)
                {
                    List<string> todosOsArquivos = F.BuscarTodos();
                    return todosOsArquivos;
                }
                else
                {
                    throw new Exception(F.mensagem);
                }
            }

        public class List
        {
            public List<Cliente> ListUnit { get; set; }
        }

        public static string SerializedClassUnit(Cliente unit)
        {
            return JsonConvert.SerializeObject(unit);
        }

        public static Cliente DesSerializedClassUnit(string vJson)
        {
            return JsonConvert.DeserializeObject<Cliente>(vJson);
        }
    }

Inicialmente eu pego o arquivo Excel e transformo em JSON usando esse projeto do git hub https://github.com/taboo09/ExcelDataToJson Depois quando vou deserializar aparece um erro. Já que quero ler os arquivos:

private void btn_Buscar_Click(object sender, EventArgs e)
        {
            try
            {
                Fichario F = new Fichario(@"C:\Users\Aline\Desktop\CURSO\excel\VBA NA VEIA\json");
                if (F.status)
                {
                    List<string> List = new List<string>();
                    List = F.BuscarTodos();
                    if (F.status)
                    {
                        List<List<string>> ListaBusca = new List<List<string>>();
                        for (int i = 0; i <= List.Count - 1; i++)
                        {
                            Cliente C = Cliente.DesSerializedClassUnit(List[i]);
                            ListaBusca.Add(new List<string> { C.Clientes});
                        }
                        Frm_Busca FForm = new Frm_Busca(ListaBusca);
                        FForm.ShowDialog();
                    }
                    else
                    {
                        MessageBox.Show("ERR: " + F.mensagem, "ByteBank", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
                else
                {
                    MessageBox.Show("ERR: " + F.mensagem, "ByteBank", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            catch(Exception Ex)
            {
                MessageBox.Show("ERR: " + Ex.Message, "Busca de Excel", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

Como posso alterar esse deserialização para array?

1 resposta

Olá, Aline. Por gentileza, coloque o json aqui. Você pode valida-lo em: https://jsonformatter.org/json-parserPara isto, coloque o json no primeiro campo e clique no botão "format json", no próximo campo aparecerá o resultado do json.

Sua idéia era criar uma lista dentro de cada linha de outra lista mesmo? List<List> ListaBusca = new List<List>();

Vi que você criou um classe List, variável List, além do uso interno do C#, cuidado.