在.Net AJAX中是否有内置方法可以手动将对象序列化为JSON字符串?

时间:2008-08-29 19:28:51

标签: asp.net vb.net json serialization .net-2.0

我找到ScriptingJsonSerializationSection,但我不确定如何使用它。我可以编写一个函数来手动将对象转换为JSON字符串,但是因为.Net可以使用<System.Web.Services.WebMethod()><System.Web.Script.Services.ScriptMethod()>属性动态执行,所以必须有一个内置的方法,我我失踪了。

PS:使用Asp.Net 2.0和VB.Net - 我把它放在标签中,但我认为人们错过了它。

6 个答案:

答案 0 :(得分:10)

这应该可以解决问题

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

答案 1 :(得分:6)

我认为你要找的是这堂课:

System.ServiceModel.Web.DataContractJsonSerializer

以下是Rick Strahl的一个例子:DataContractJsonSerializer in .NET 3.5

答案 2 :(得分:4)

由于JavaScriptSerializer类在技术上已被弃用,我相信如果您使用3.0 +,DataContractJsonSerializer是最好的方法。

答案 3 :(得分: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)。 / p>

答案 4 :(得分:2)

在System.Web.Extensions程序集3.5.0.0版中,有一个JavaScriptSerializer类可以处理你想要的内容。

答案 5 :(得分:1)

尝试

System.Web.Script.Serialization.JavaScriptSerializer

或签出JSON.org有一个完整的库列表,可以完全按照您的要求编写。