ASP.NET MVC Json的序列化和反序列化


1.利用js進行序列化成字符串和反序列化

1 var personObj = {name:"Tom",age:16};
2 
3 // 利用JS序列化成字符串
4 var personStr = JSON.stringify(personObj);
5 
6 // 利用JS進行反序列化
7 var personObj2 = JSON.parse(personStr);

2.ASP.MVC后台進行序列化和反序列化

(1)創建一個類來組織傳來的數據

public Class Person
{
    // 屬性名稱與JSON中的一致
    public string name{get;set;}
    public int age{get;set;}
}
        

(2)序列化工具類

    /// <summary>
    /// Json幫助類
    /// </summary>
    public class JsonHelper
    {
        /// <summary>
        /// 將對象序列化為JSON格式
        /// </summary>
        /// <param name="o">對象</param>
        /// <returns>json字符串</returns>
        public static string SerializeObject(object o)
        {
            string json = JsonConvert.SerializeObject(o);
            return json;
        }

        /// <summary>
        /// 解析JSON字符串生成對象實體
        /// </summary>
        /// <typeparam name="T">對象類型</typeparam>
        /// <param name="json">json字符串(eg.{"ID":"112","Name":"石子兒"})</param>
        /// <returns>對象實體</returns>
        public static T DeserializeJsonToObject<T>(string json) where T : class
        {
            JsonSerializer serializer = new JsonSerializer();
            StringReader sr = new StringReader(json);
            object o = serializer.Deserialize(new JsonTextReader(sr), typeof(T));
            T t = o as T;
            return t;
        }

        /// <summary>
        /// 解析JSON數組生成對象實體集合
        /// </summary>
        /// <typeparam name="T">對象類型</typeparam>
        /// <param name="json">json數組字符串(eg.[{"ID":"112","Name":"石子兒"}])</param>
        /// <returns>對象實體集合</returns>
        public static List<T> DeserializeJsonToList<T>(string json) where T : class
        {
            JsonSerializer serializer = new JsonSerializer();
            StringReader sr = new StringReader(json);
            object o = serializer.Deserialize(new JsonTextReader(sr), typeof(List<T>));
            List<T> list = o as List<T>;
            return list;
        }

        /// <summary>
        /// 反序列化JSON到給定的匿名對象.
        /// </summary>
        /// <typeparam name="T">匿名對象類型</typeparam>
        /// <param name="json">json字符串</param>
        /// <param name="anonymousTypeObject">匿名對象</param>
        /// <returns>匿名對象</returns>
        public static T DeserializeAnonymousType<T>(string json, T anonymousTypeObject)
        {
            T t = JsonConvert.DeserializeAnonymousType(json, anonymousTypeObject);
            return t;
        }
    }

(3)后台序列化

List<Person> jsonlist = JsonHelper.DeserializeJsonToList <Person> (jsonObjects);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM