2013-07-16 96 views
1

試圖解碼JSON對象模型反序列化

錯誤,當我得到這個錯誤:類型「realstate.Models.PesquisaModel.pesquisaClienteListModel」不支持數組的反序列化。

這是字符串:

JSON對象:

jsonObj=[{ 
"idCliente":"2", 
"nome":"Guilherme Longo", 
"email":"[email protected]", 
"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:

這個我s型號:

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

對不起,這個不好的問題。只是修復它。 –

+0

你能調試它並在控制器端發佈jsonObj字符串的內容嗎? –

+0

你傳遞了​​你的數據:JSON.stringfy(/ * myDataToSend * /)? – Fals

回答

1

您應該對ajax函數中的內容進行stringfy以使其工作。這樣做:

data = JSON.stringfy(/*myDataToSend*/) 
0

你不需要做序列化,MVC模型綁定器會爲你做。將您的操作參數更改爲您的自定義類型。

public ActionResult dataSetClientes(PesquisaModel jsonObj) 
{ 

} 
1

只有實現IEnumerable時,才能從json數組反序列化一個類。 PesquisaModel.pesquisaClienteListModel不。相反,使用以下內容:

List<PesquisaModel> list = new JavaScriptSerializer().Deserialize<List<PesquisaModel>>(jsonObj); 
    PesquisaModel.pesquisaClienteListModel items = new PesquisaModel.pesquisaClienteListModel() { item = list }; 
+0

不知道它是否有助於原始海報,但解決了我的問題,歡呼:) –