尝试解码Json对象时出现此错误
错误:输入' realstate.Models.PesquisaModel.pesquisaClienteListModel'不支持反序列化数组。
这是字符串:
JSON对象:
jsonObj=[{
"idCliente":"2",
"nome":"Guilherme Longo",
"email":"guilhermelongo@outlook.com.br",
"tipoPessoa":"1",
"observacao":"Mais conteúdo",
"rg":"435180307",
"cpf":"341.307.948-41",
"cnpj":null,
"estado":"SP",
"cidade":"Ribeirão Preto",
"logradouro":"Rua",
"endereco":"Brigadeiro Tobias de Aguiar",
"numero":"469",
"bairro":"Independência",
"complemento":"Bloco A"
},
{"idCliente":"8",
"nome":"Guilherme Longo",
...
}]
以下是我遇到此错误的地方:
public ActionResult dataSetClientes(string jsonObj)
{
PesquisaModel.pesquisaClienteListModel items = new JavaScriptSerializer().Deserialize<PesquisaModel.pesquisaClienteListModel>(jsonObj);
...
}
编辑1:
这是模特:
public class PesquisaModel
{
public class pesquisaClienteModel
{
public string idCliente { get; set; }
public string nome { get; set; }
public string email { get; set; }
public string tipoPessoa { get; set; }
public string observacao { get; set; }
public string rg { get; set; }
public string cpf { get; set; }
public string cnpj { get; set; }
public string estado { get; set; }
public string cidade { get; set; }
public string logradouro { get; set; }
public string endereco { get; set; }
public string numero { get; set; }
public string bairro { get; set; }
public string complemento { get; set; }
}
public class pesquisaClienteListModel
{
public List<pesquisaClienteModel> item { get; set; }
}
}
答案 0 :(得分:1)
您应该对ajax函数中的内容进行字符串化以使其工作。这样做:
data = JSON.stringfy(/*myDataToSend*/)
答案 1 :(得分:1)
只有在实现IEnumerable时,才能从json数组反序列化类。 PesquisaModel.pesquisaClienteListModel
没有。相反,请使用以下内容:
List<PesquisaModel> list = new JavaScriptSerializer().Deserialize<List<PesquisaModel>>(jsonObj);
PesquisaModel.pesquisaClienteListModel items = new PesquisaModel.pesquisaClienteListModel() { item = list };
答案 2 :(得分:0)
您不必进行序列化,MVC模型绑定器将为您完成。将您的操作参数更改为自定义类型。
public ActionResult dataSetClientes(PesquisaModel jsonObj)
{
}