2010-12-10 48 views
0

出於某種原因,在ASP.NET AJAX,當我這樣做:ASP.NET AJAX反序列化

Sys.Serialization.JavaScriptSerializer.serialize({attachToValidators:true}); 

這是結果:

"{"attachToValidators":true}" 

我試圖扭轉結果:

Sys.Serialization.JavaScriptSerializer.deserialize("{\"attachToValidators\":true}"); 

或:

Sys.Serialization.JavaScriptSerializer.deserialize("{attachToValidators:true}"); 

我收到這樣的結果:

Sys.ArgumentException:無法反序列化。數據不符合有效的JSON。 參數名稱:數據

這是爲什麼?

感謝。

回答

-1

你想要反序列化它?這是JavaScriptSerializer是如何工作的,反序列化:

public class ValidatorInfo 
{ 
    public bool attachToValidators { get; set; } 
} 

public void yourFunction() 
{ 
    var js = new JavaScriptSerializer(); 

    ValidatorInfo info = js.Deserialize<ValidatorInfo>("{\"attachToValidators\":true}"); 

    // True. 
    info.attachToValidators == true; 
} 

在你的問題,你序列化一個匿名類型,所以你有沒有一個基本類型序列化脫身。儘管如此,這還不行。

如果你需要更多的動態行爲,Json.Net提供類似於LINQ實現的東西。

+0

我的例子是客戶端代碼,而不是服務器端。 – 2010-12-10 20:17:49