2012-09-28 112 views
1

代碼:C#JavaScriptSerializer JSON數組反序列化

string json = "[{\"Name\" : \"dan\", \"Age\" : 25, \"City\" : \"lllal\", \"About\" : \"im dan\", \"Bdate\" : \"26/06/1997\"}]"; 

JavaScriptSerializer ser = new JavaScriptSerializer(); 
List<Person> ncontacts = ser.Deserialize<List<Person>>(json); 

foreach (Person person in ncontacts) 
    listView1.Items.Add(person.Name); 

Person類:

class Person 
{ 
    public string Name { get; set; } 
    public int Age { get; set; } 
    public string City { get; set; } 
    public string About { get; set; } 
    public DateTime Bdate { get; set; } 
} 

的problam是ListView控件保持爲0的項目,甚至它應該有dan

我tryed調試和我把一個斷點在foreach行,有什麼奇怪的是,它從來沒有得到該行..如果我把一個斷點一行它打破了之前..

任何幫助將被歡迎, 丹

+1

Deserialize調用之後'ncontacts'的內容是什麼? – MrOBrian

+0

當我在該行上放置一個斷點時,如果它爲空,則表明它爲'null' –

+0

,則反序列化不起作用。你有任何錯誤? – MrOBrian

回答

2

您的日期字符串26/06/1997是不是有效的反序列化格式和您的代碼得到異常。如果您將public DateTime Bdate { get; set; }替換爲public string Bdate { get; set; },您可以看到它正在工作。

+0

這不取決於他的語言環境嗎? –

+0

我該如何更改日期字符串以適合反序列化的有效格式,而不是更改屬性? –

+0

@justnS不,然後序列化將不得不取決於接收者的區域設置。 –