11

我找到ScriptingJsonSerializationSection了,但我不确定如何使用它。我可以编写一个函数来手动将对象转换为 JSON 字符串,但是由于 .Net 可以使用<System.Web.Services.WebMethod()>and<System.Web.Script.Services.ScriptMethod()>属性即时执行此操作,因此必须有一种我缺少的内置方式。

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

4

6 回答 6

11

这应该可以解决问题

Dim jsonSerialiser As New System.Web.Script.Serialization.JavaScriptSerializer
Dim jsonString as String = jsonSerialiser.Serialize(yourObject)
于 2008-08-29T19:37:28.363 回答
6

我认为你正在寻找的是这个类:

System.ServiceModel.Web.DataContractJsonSerializer

这是 Rick Strahl 的一个示例:DataContractJsonSerializer in .NET 3.5

于 2008-08-29T19:37:45.850 回答
4

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

于 2008-08-29T19:40:49.260 回答
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 时)。

于 2008-08-29T19:41:07.120 回答
2

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

于 2008-08-29T19:38:32.090 回答
1

尝试

System.Web.Script.Serialization.JavaScriptSerializer

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

于 2008-08-29T19:39:06.377 回答