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