步步为营:Asp.Net序列化Json格式的两种方法
生活随笔
收集整理的這篇文章主要介紹了
步步为营:Asp.Net序列化Json格式的两种方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
過去我們使用JSON.net序列化一個對象,在asp.net3.5中已經集成了序列化對象為json的方法。
我們分別針對System.Runtime.Serialization.Json和System.Web.Script.Serialization兩個命名空間下的不同方法進行序列化和反序列化。
System.Runtime.Serialization.Json
(在vs2008添加引用System.Runtime.Serialization 如果在非WEB項目下還需要引用System.ServiceModel.Web)
public class JsonHelper{
/// <summary>
/// 生成Json格式
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="obj"></param>
/// <returns></returns>
public static string GetJson<T>(T obj)
{
DataContractJsonSerializer json = new DataContractJsonSerializer(obj.GetType());
using (MemoryStream stream = new MemoryStream())
{
json.WriteObject(stream, obj);
string szJson = Encoding.UTF8.GetString(stream.ToArray()); return szJson;
}
}
/// <summary>
/// 獲取Json的Model
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="szJson"></param>
/// <returns></returns>
public static T ParseFromJson<T>(string szJson)
{
T obj = Activator.CreateInstance<T>();
using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(szJson)))
{
DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());
return (T)serializer.ReadObject(ms);
}
}
}
?
System.Web.Script.Serialization
(引用System.Web.Extensions.dll)
JavaScriptSerializer jss = new JavaScriptSerializer();Response.Write( jss.Serialize(l_topmenu ));
?
string szJson = @"{""id"":""1"",""title"":""全局"",""defaulturl"":""123456""} ";topMenu toptabmenu = jss.Deserialize<topMenu>(szJson);
Response.Write( jss.Serialize(toptabmenu.title));
?
綜上。兩種方法個有好處。一個比較靈活。一個較簡潔
?
轉載于:https://www.cnblogs.com/79039535/archive/2011/12/12/2284904.html
總結
以上是生活随笔為你收集整理的步步为营:Asp.Net序列化Json格式的两种方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: xcode3.2.6升级至4.0.2经验
- 下一篇: ASP.NET笔记(三)