Erro ao criar um json

Boa noite amigos;

estou com este código e ele está me retornando o seguinte resultado.: <string xmlns="http://sigmasistemas.com.br/">Conversão especificada não é válida.</string>, não estou conseguindo entender o porque disso… alguém me da uma luz?

`public string getAllPessoas()
{
List lista = new List();

        using (OleDbConnection conexaoAccess = Conexao.getInstancia().getConexao())
        {
            try
            {
                conexaoAccess.Open();

                string sqlQuery = "SELECT `Codigo`,`DataAtualizacao`,`Nome`,`NomeFantasia`,`TipoDoc`,`CNPJ`,`IDEstrangeiro`,`CCE`,`RG`,`Endereco`,"
                    + " `Numero`,`Complemento`,`Bairro`,`CEP`,`CodigoMunicipio`,`UF`,`CodigoPais`,`DDD`,`Fone`,`Celular`,`Email`,`LimiteCredito`,"
                    + "`ClassificacaoFinanceira`,`ClassificacaoVenda`,`Referencia01`,`FoneReferencia01`,`Referencia02`,`FoneReferencia02`,`Referencia03`,"
                    + "`FoneReferencia03`,`Contato1`,`Contato2`,`CodigoRota`,`codigoTipo`,`ContribuinteICMS`,`OptanteSN`,`Inativo`,`Observacao`,`_sinc` "
                    +" FROM PESSOA;";

                OleDbCommand sql = new OleDbCommand(sqlQuery, conexaoAccess);
                OleDbDataReader dados = sql.ExecuteReader();

                while (dados.Read())
                {
                    Pessoa p = new Pessoa();

                    p.Codigo = dados.GetInt32(0);
                    p.DataAtualizacao = dados.GetString(1);
                    p.Nome = dados.GetString(2);
                    p.NomeFantasia = dados.GetString(3);
                    p.TipoDoc = dados.GetInt32(4);
                    p.Doc = dados.GetString(5);
                    p.IdEstrangeiro = dados.GetString(6);
                    p.Cce = dados.GetString(7);
                    p.Rg = dados.GetString(8);
                    p.Endereco = dados.GetString(9);
                    p.Numero = dados.GetInt32(10);
                    p.Complemento = dados.GetString(11);
                    p.Bairro = dados.GetString(12);
                    p.Cep = dados.GetInt32(13);
                    p.CodigoMunicipio = dados.GetInt32(14);
                    p.Uf = dados.GetString(15);
                    p.CodigoPais = dados.GetInt32(16);
                    p.Ddd = dados.GetInt32(17);
                    p.Telefone = dados.GetInt32(18);
                    p.Celular = dados.GetInt32(19);
                    p.Email = dados.GetString(20);
                    p.LimiteCredito = dados.GetFloat(21);
                    p.ClassificacaoFinanceira = dados.GetString(22);
                    p.ClassificacaoVenda = dados.GetString(23);
                    p.Referencia1 = dados.GetString(24);
                    p.FoneReferencia1 = dados.GetInt32(25);
                    p.Referencia2 = dados.GetString(26);
                    p.FoneReferencia2 = dados.GetInt32(27);
                    p.Referencia3 = dados.GetString(28);
                    p.FoneReferencia3 = dados.GetInt32(29);
                    p.Contato1 = dados.GetString(30);
                    p.Contato2 = dados.GetString(31);
                    p.CodigoRota = dados.GetInt32(32);
                    p.CodigoTipo = dados.GetInt32(33);
                    p.ContribuinteIcms = dados.GetInt32(34);
                    p.OptanteSn = dados.GetInt32(35);
                    p.Inativo = dados.GetInt32(36);
                    p.Observacao1 = dados.GetString(37);
                    p.Sync = dados.GetString(38);

                    lista.Add(p);
                }
                JavaScriptSerializer jss = new JavaScriptSerializer();
                StringBuilder ss = new StringBuilder();

                jss.Serialize(lista, ss);
                return jss.Serialize(ss.ToString());
            }
            catch (Exception e)
            {
                return e.Message;
            }
            finally
            {
                //fecha a conexao
                conexaoAccess.Close();
            }
            return null;
        }
    }`

mostra a stacktrace inteira pra gente da exception

não existe erro, este retorna pelo bloco tray, vou mostrar o meu código, não sei se é algo simples de se resolver, pois minha experiência é pouca no c#. eu segui a ideia deste tuto.: digite a descrição do link aqui

veja só o “class” Pessoa.:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace SigmaWS.Entity
{
    public class Pessoa
    {
        private int codigo;
        private string dataAtualizacao;
        private string nome;
        private string nomeFantasia;
        private int tipoDoc;
        private string doc;
        private string idEstrangeiro;
        private string cce;
        private string rg;
        private string endereco;
        private int numero;
        private string complemento;
        private string bairro;
        private int cep;
        private int codigoMunicipio;
        private string uf;
        private int codigoPais;
        private int ddd;
        private int telefone;
        private int celular;
        private string email;
        private float limiteCredito;
        private string classificacaoFinanceira;
        private string classificacaoVenda;
        private string referencia1;
        private int foneReferencia1;
        private string referencia2;
        private int foneReferencia2;
        private string referencia3;
        private int foneReferencia3;
        private string contato1;
        private string contato2;
        private int codigoRota;
        private int codigoTipo;
        private int contribuinteIcms;
        private int optanteSn;
        private int inativo;
        private string Observacao;
        private string sync;

    public int Codigo
    {
        get
        {
            return codigo;
        }

        set
        {
            codigo = value;
        }
    }

    public string DataAtualizacao
    {
        get
        {
            return dataAtualizacao;
        }

        set
        {
            dataAtualizacao = value;
        }
    }

    public string Nome
    {
        get
        {
            return nome;
        }

        set
        {
            nome = value;
        }
    }

    public string NomeFantasia
    {
        get
        {
            return nomeFantasia;
        }

        set
        {
            nomeFantasia = value;
        }
    }

    public int TipoDoc
    {
        get
        {
            return tipoDoc;
        }

        set
        {
            tipoDoc = value;
        }
    }

    public string Doc
    {
        get
        {
            return doc;
        }

        set
        {
            doc = value;
        }
    }

    public string IdEstrangeiro
    {
        get
        {
            return idEstrangeiro;
        }

        set
        {
            idEstrangeiro = value;
        }
    }

    public string Cce
    {
        get
        {
            return cce;
        }

        set
        {
            cce = value;
        }
    }

    public string Rg
    {
        get
        {
            return rg;
        }

        set
        {
            rg = value;
        }
    }

    public string Endereco
    {
        get
        {
            return endereco;
        }

        set
        {
            endereco = value;
        }
    }

    public int Numero
    {
        get
        {
            return numero;
        }

        set
        {
            numero = value;
        }
    }

    public string Complemento
    {
        get
        {
            return complemento;
        }

        set
        {
            complemento = value;
        }
    }

    public string Bairro
    {
        get
        {
            return bairro;
        }

        set
        {
            bairro = value;
        }
    }

    public int Cep
    {
        get
        {
            return cep;
        }

        set
        {
            cep = value;
        }
    }

    public int CodigoMunicipio
    {
        get
        {
            return codigoMunicipio;
        }

        set
        {
            codigoMunicipio = value;
        }
    }

    public string Uf
    {
        get
        {
            return uf;
        }

        set
        {
            uf = value;
        }
    }

    public int CodigoPais
    {
        get
        {
            return codigoPais;
        }

        set
        {
            codigoPais = value;
        }
    }

    public int Ddd
    {
        get
        {
            return ddd;
        }

        set
        {
            ddd = value;
        }
    }

    public int Telefone
    {
        get
        {
            return telefone;
        }

        set
        {
            telefone = value;
        }
    }

    public int Celular
    {
        get
        {
            return celular;
        }

        set
        {
            celular = value;
        }
    }

    public string Email
    {
        get
        {
            return email;
        }

        set
        {
            email = value;
        }
    }

    public float LimiteCredito
    {
        get
        {
            return limiteCredito;
        }

        set
        {
            limiteCredito = value;
        }
    }

    public string ClassificacaoFinanceira
    {
        get
        {
            return classificacaoFinanceira;
        }

        set
        {
            classificacaoFinanceira = value;
        }
    }

    public string Referencia1
    {
        get
        {
            return referencia1;
        }

        set
        {
            referencia1 = value;
        }
    }

    public int FoneReferencia1
    {
        get
        {
            return foneReferencia1;
        }

        set
        {
            foneReferencia1 = value;
        }
    }

    public string Referencia2
    {
        get
        {
            return referencia2;
        }

        set
        {
            referencia2 = value;
        }
    }

    public int FoneReferencia2
    {
        get
        {
            return foneReferencia2;
        }

        set
        {
            foneReferencia2 = value;
        }
    }

    public string Referencia3
    {
        get
        {
            return referencia3;
        }

        set
        {
            referencia3 = value;
        }
    }

    public int FoneReferencia3
    {
        get
        {
            return foneReferencia3;
        }

        set
        {
            foneReferencia3 = value;
        }
    }

    public string Contato1
    {
        get
        {
            return contato1;
        }

        set
        {
            contato1 = value;
        }
    }

    public string Contato2
    {
        get
        {
            return contato2;
        }

        set
        {
            contato2 = value;
        }
    }

    public int CodigoRota
    {
        get
        {
            return codigoRota;
        }

        set
        {
            codigoRota = value;
        }
    }

    public int CodigoTipo
    {
        get
        {
            return codigoTipo;
        }

        set
        {
            codigoTipo = value;
        }
    }

    public int ContribuinteIcms
    {
        get
        {
            return contribuinteIcms;
        }

        set
        {
            contribuinteIcms = value;
        }
    }

    public int OptanteSn
    {
        get
        {
            return optanteSn;
        }

        set
        {
            optanteSn = value;
        }
    }

    public int Inativo
    {
        get
        {
            return inativo;
        }

        set
        {
            inativo = value;
        }
    }

    public string Observacao1
    {
        get
        {
            return Observacao;
        }

        set
        {
            Observacao = value;
        }
    }

    public string Sync
    {
        get
        {
            return sync;
        }

        set
        {
            sync = value;
        }
    }

    public string ClassificacaoVenda
    {
        get
        {
            return classificacaoVenda;
        }

        set
        {
            classificacaoVenda = value;
        }
    }
}

}`

Class Conexão.:
`using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.OleDb;

namespace SigmaWS
{
public class Conexao
{
private static readonly Conexao instanciaAccess = new Conexao();

    private Conexao() { }

    public static Conexao getInstancia()
    {
        return instanciaAccess;
    }

    public OleDbConnection getConexao()
    {
        string conn = @"Provider = Microsoft.ACE.OLEDB.12.0; Data Source = C:\database\DB.MDB;Jet OLEDB:Database Password =";
        return new OleDbConnection(conn);
    }
}

}`

e por ultimo o meu Servicos.asmx.:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Script.Serialization;
using System.Data.OleDb;
using SigmaWS.Entity;
using System.Text;

namespace SigmaWS
{
    [WebService(Namespace = "http://sigmasistemas.com.br/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]

public class Servicos : System.Web.Services.WebService
{
    [WebMethod]
    public string getAllPessoas()
    {
        List<Pessoa> lista = new List<Pessoa>();

        using (OleDbConnection conexaoAccess = Conexao.getInstancia().getConexao())
        {
            try
            {
                conexaoAccess.Open();

                string sqlQuery = "SELECT `Codigo`,`DataAtualizacao`,`Nome`,`NomeFantasia`,`TipoDoc`,`CNPJ`,`IDEstrangeiro`,`CCE`,`RG`,`Endereco`,"
                    + " `Numero`,`Complemento`,`Bairro`,`CEP`,`CodigoMunicipio`,`UF`,`CodigoPais`,`DDD`,`Fone`,`Celular`,`Email`,`LimiteCredito`,"
                    + "`ClassificacaoFinanceira`,`ClassificacaoVenda`,`Referencia01`,`FoneReferencia01`,`Referencia02`,`FoneReferencia02`,`Referencia03`,"
                    + "`FoneReferencia03`,`Contato1`,`Contato2`,`CodigoRota`,`codigoTipo`,`ContribuinteICMS`,`OptanteSN`,`Inativo`,`Observacao`,`_sinc` "
                    +" FROM PESSOA;";

                OleDbCommand sql = new OleDbCommand(sqlQuery, conexaoAccess);
                OleDbDataReader dados = sql.ExecuteReader();

                while (dados.Read())
                {
                    Pessoa p = new Pessoa();

                    p.Codigo = dados.GetInt32(0);
                    p.DataAtualizacao = dados.GetString(1);
                    p.Nome = dados.GetString(2);
                    p.NomeFantasia = dados.GetString(3);
                    p.TipoDoc = dados.GetInt32(4);
                    p.Doc = dados.GetString(5);
                    p.IdEstrangeiro = dados.GetString(6);
                    p.Cce = dados.GetString(7);
                    p.Rg = dados.GetString(8);
                    p.Endereco = dados.GetString(9);
                    p.Numero = dados.GetInt32(10);
                    p.Complemento = dados.GetString(11);
                    p.Bairro = dados.GetString(12);
                    p.Cep = dados.GetInt32(13);
                    p.CodigoMunicipio = dados.GetInt32(14);
                    p.Uf = dados.GetString(15);
                    p.CodigoPais = dados.GetInt32(16);
                    p.Ddd = dados.GetInt32(17);
                    p.Telefone = dados.GetInt32(18);
                    p.Celular = dados.GetInt32(19);
                    p.Email = dados.GetString(20);
                    p.LimiteCredito = dados.GetFloat(21);
                    p.ClassificacaoFinanceira = dados.GetString(22);
                    p.ClassificacaoVenda = dados.GetString(23);
                    p.Referencia1 = dados.GetString(24);
                    p.FoneReferencia1 = dados.GetInt32(25);
                    p.Referencia2 = dados.GetString(26);
                    p.FoneReferencia2 = dados.GetInt32(27);
                    p.Referencia3 = dados.GetString(28);
                    p.FoneReferencia3 = dados.GetInt32(29);
                    p.Contato1 = dados.GetString(30);
                    p.Contato2 = dados.GetString(31);
                    p.CodigoRota = dados.GetInt32(32);
                    p.CodigoTipo = dados.GetInt32(33);
                    p.ContribuinteIcms = dados.GetInt32(34);
                    p.OptanteSn = dados.GetInt32(35);
                    p.Inativo = dados.GetInt32(36);
                    p.Observacao1 = dados.GetString(37);
                    p.Sync = dados.GetString(38);

                    lista.Add(p);
                }
                JavaScriptSerializer jss = new JavaScriptSerializer();
                StringBuilder ss = new StringBuilder();

                jss.Serialize(lista, ss);
                return jss.Serialize(ss.ToString());
            }
            catch (Exception e)
            {
                return e.Message;
            }
            finally
            {
                //fecha a conexao
                conexaoAccess.Close();
            }
            return null;
        }
    }
}
}

o meu interesse é retornar ele de alguma forma, fui orientado a retornar ele em string, convertendo ele em um json, mais rápido de recuperar pois é apenas uma string.

http://www.newtonsoft.com/json/help/html/SerializingJSON.htm
Excelente biblioteca para criação de json de uma olhada na documentação, é bem simples, resumidamente depois de criar o seu modelo, vc pede pra ele serializar, e ele gera um json apartir de todos os gets publicos do seu modelo:

Product product = new Product();
 
 product.Name = "Apple";
 product.ExpiryDate = new DateTime(2008, 12, 28);
 product.Price = 3.99M;
 product.Sizes = new string[] { "Small", "Medium", "Large" };
 
 string output = JsonConvert.SerializeObject(product);
 //{
//  "Name": "Apple",
//  "ExpiryDate": "2008-12-28T00:00:00",
//  "Price": 3.99,
//  "Sizes": [
//    "Small",
//    "Medium",
//    "Large"
//  ]
//
1 curtida