• 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);
  • 相关阅读:
    JS ajax请求参数格式( formData 、serialize)
    自己封装一个弹窗JS
    JAVA工程师面试题库
    正则表达式各种判断情况
    用angular中的angular-messages(ngMessage)实现表单验证时输入框外提示信息的显示与隐藏(直接把代码粘贴到新建的html文件中即可实现)
    rxjs 的用法
    浏览器兼容
    下面的路径可以作为以后练习前端调用的api 没有跨域访问的限制
    ES6 import 的几种写法
    git 比较两个分支
  • 原文地址:https://www.cnblogs.com/MaFeng0213/p/5943536.html
Copyright © 2020-2023  润新知