博客园  :: 首页  :: 新随笔  :: 联系 :: 管理

扩展方法ToJSON() and ParseJSON()

Posted on 2008-03-09 15:19  周末  阅读(431)  评论(0编辑  收藏  举报

AJAX编程经常需要Object<=>JSON之间转换,写了二个扩展方法:

public static string ToJSON(this object obj)

public static T ParseJSON<T>(this string str)

 

public static class JSONExtension
{
    public static string ToJSON(this object obj)
    {
        DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());
        using (MemoryStream ms = new MemoryStream())
        {
            serializer.WriteObject(ms, obj);
            return Encoding.Default.GetString(ms.ToArray());
        }
    }
 
    public static T ParseJSON<T>(this string str)
    {
        T obj = Activator.CreateInstance<T>();
        using (MemoryStream ms = new MemoryStream(Encoding.Unicode.GetBytes(str)))
        {
            DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());
            return (T)serializer.ReadObject(ms);
        }
    }
}