2008-08-29 36 views
10

我找到了ScriptingJsonSerializationSection,但我不確定如何使用它。我可以編寫一個函數將對象手動轉換爲JSON字符串,但由於.Net可以通過<System.Web.Services.WebMethod()><System.Web.Script.Services.ScriptMethod()>屬性實現,所以必須有我缺少的內置方法。在.Net AJAX中是否有內置的方式來手動將對象序列化爲JSON字符串?

PS:使用Asp.Net 2.0和VB.Net - 我把它放在標籤中,但我認爲人們錯過了它。

+0

「使用Asp.Net 2.0和VB.Net - 我把它放在標籤中,但我認爲人們錯過了它」 - 嗯,「2.0」可以解釋爲「不是1.1」而不是「不是3.x」 。 – bzlm 2009-03-02 12:58:50

回答

10

這應該做的伎倆

Dim jsonSerialiser As New System.Web.Script.Serialization.JavaScriptSerializer 
Dim jsonString as String = jsonSerialiser.Serialize(yourObject) 
+0

注意:在.NET 3.5中,JavaScriptSerializer被標記爲過時,它表示使用DataContractJsonSerializer – 2008-09-10 03:06:53

+0

這是正確的,但是這是針對.Net 2.0項目的 – travis 2008-09-16 02:29:38

+3

在.NET 3.5 SP1中,它不再被廢棄! – bzlm 2009-03-02 12:57:14

3

在System.Web.Extensions程序集版本3.5.0.0,有一個JavaScriptSerializer類應該處理你想要的東西。

1

嘗試

System.Web.Script.Serialization.JavaScriptSerializer 

或退房JSON.org有寫入做正是你想要的庫的完整列表。

4

由於JavaScriptSerializer類在技術上已被棄用,我相信DataContractJsonSerializer是最好的方法去如果您使用3.0 +。

3

嗯,我目前使用下面的擴展方法序列化和反序列化對象:

using System.Web.Script.Serialization; 

public static string ToJSON(this object objectToSerialize) 
{ 
    JavaScriptSerializer jss = new JavaScriptSerializer(); 
    return jss.Serialize(objectToSerialize); 
} 

/// <typeparam name="T">The type we are deserializing the JSON to.</typeparam> 
public static T FromJSON<T>(this string json) 
{ 
    JavaScriptSerializer jss = new JavaScriptSerializer(); 
    return jss.Deserialize<T>(json); 
} 

我用這個頗有幾分 - 事先警告,因此這種做法有點幼稚(即有一些潛在的問題與它,這取決於你是什麼序列化,以及如何在客戶端上使用它,特別是與DateTimes)。

相關問題