2011-08-26 75 views
0

這裏我附上一個示例代碼。他們使用JavaScriptSerializer生成json格式的數據並將數據發送回客戶端JavaScriptSerializer是強制性的嗎?

GetPersons()已被jquery ajax函數調用。然後數據當它們返回被JSON格式自動生成這裏

$.ajax({ 
    type: "POST", 
    url: "Default.aspx/GetPersons", 
    contentType: "application/json; charset=utf-8", 
    data: "{}", 
    dataType: "json", 
    success: AjaxSucceeded, 
    error: AjaxFailed 
}); 

[WebMethod()] 
public static string GetPersons() 
{ 
    List<person> persons = new List<person>() 
    { 
     new Person { UId = 1, Name = "Brij", Address = "Noida"}, 
     new Person { UId = 2, Name = "Rahul", Address = "New Delhi" }, 
     new Person { UId = 3, Name = "John0", Address = "Chris"} 
    }; 

    JavaScriptSerializer ser = new JavaScriptSerializer(); 
    return ser.Serialize(persons); 
} 

代碼時的方法是通過的WebMethod裝飾。如果你們仔細看它 那麼你可以看到GetPersons()字符串,而不是List。爲什麼有人返回字符串而不是List。如果他們將返回列表 那麼數據不需要以json格式手動生成。我對嗎?

所以我只需要知道爲什麼人們使用JavaScriptSerializer生成json格式的數據。所以請告訴我一個人有什麼樣的情況使用

JavaScriptSerializer以json格式手動生成數據?

請詳細討論.......謝謝

回答

0

JSON序列化不是強制性的。您可以返回逗號分隔值對列表。不同之處在於,必須在客戶端上解析列表以將其重新轉換爲數組或數據對象。 JSON的美妙之處在於它已成爲本地JavaScript對象。

當數據結構變得更加複雜時,這變得更加重要。

+0

它會更有幫助,如果你給我兩個小樣本代碼一個返回列表和一個返回像ser.Serialize(個人); 作爲一個結果,我可以理解你想說什麼....你說列表將不得不在客戶端解析,把它變成一個數組和JSON是它已經是一個本地的JavaScript對象。 – Thomas

相關問題