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

时间:2020-03-05 18:45:11  来源:igfitidea点击:

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

PS:使用Asp.Net 2.0和VB.Net,我将其放入标签中,但我认为人们会错过它。

解决方案

回答

这应该可以解决问题

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

回答

我认为我们正在寻找的是此类课程:

System.ServiceModel.Web.DataContractJsonSerializer

这是Rick Strahl的示例:.NET 3.5中的DataContractJsonSerializer

回答

在System.Web.Extensions程序集(版本3.5.0.0)中,有一个JavaScriptSerializer类应处理所需的内容。

回答

尝试

System.Web.Script.Serialization.JavaScriptSerializer

或者查看JSON.org,其中列出了完整的库,可以完全满足要求。

回答

由于从技术上讲JavaScriptSerializer类已被弃用,如果我们使用的是3.0+版本,我相信DataContractJsonSerializer是更可取的方法。

回答

好吧,我目前正在使用以下扩展方法来序列化和反序列化对象:

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上)。