zoukankan      html  css  js  c++  java
  • json数组的序列化和反序列化json数组的序列化和反序列化

    如题,我就不多说了,自己看代码的,很好理解

    复制代码
    using System;
    using System.Collections.Generic;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.IO;
    using System.Text;
    using System.Web.Script.Serialization;
    using System.Runtime.Serialization.Json;
    
    
    
    /// <summary>
    /// json反序列化对象
    /// </summary>
    public class Nature
    {
        public string name { get; set; }//属性编号
        public string sex { get; set; }  //分类编号
    }
    
    
    /// <summary>
    /// json反序列化对象
    /// </summary>
    public class Person
    {
        public string name { get; set; }//属性编号
        public string sex { get; set; }  //分类编号
        public string age { get; set; }  //分类编号
        public string tel { get; set; }  //分类编号
    }
    
    
    
    public partial class _Default : System.Web.UI.Page
    {
    
    
        protected void Page_Load(object sender, EventArgs e)
        {
            //复杂的json解析
            String json = "[{"name":"zhangsan","sex":"男"},{"name":"李四","sex":"男"},{"name":"张娟","sex":"女"},{"name":"慧娟","sex":"女"}]";
            List<Nature> nt = Deserialize<List<Nature>>(json);
            if (nt != null && nt.Count > 0)
            {
                Response.Write("复杂的json反序列化:<br/>");
                foreach (Nature dt in nt)//打印集合中的元素                
                {
                    Response.Write(dt.name+"<br/>");
                }
            }
    
    
            //简单的json解析
            String json1 = "{"name":"张三","sex":"男","age":"25","tel":"1301554XXXX"}";
    
    
            JavaScriptSerializer js = new JavaScriptSerializer();
            Person pe = js.Deserialize<Person>(json1);
    
            Response.Write("<br/>简单的json反序列化:" + pe.name);
    
    
            Response.Write("<h5>序列化操作</h5>");
            Response.Write("<h5>复杂对象序列化</h5>");
            List<Nature> list = new List<Nature>()   
            {   
                new Nature(){ name="张三", sex=""},   
                new Nature(){ name="慧娟", sex=""}   
            };
            string jsonTxt = JsonSerializer<List<Nature>>(list);
            Response.Write(jsonTxt);
    
            Response.Write("<h5>简单对象序列化</h5>");
            Person pes = new Person();
    
            pes.name = "姐姐";
            pes.sex = "";
            pes.tel = "1301554XXXX";
            pes.age = "23";
    
            string json1Txt = JsonSerializer<Person>(pes);
            Response.Write(json1Txt);
        }
    
    
    
        /// <summary>
        /// 反序列化json数组
        /// </summary>
        /// <typeparam name="T">对象</typeparam>
        /// <param name="json">json数组</param>
        /// <returns></returns>
        public  T Deserialize<T>(string json)
        {
            T obj = Activator.CreateInstance<T>();
            using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(json)))
            {
                DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());
                return (T)serializer.ReadObject(ms);
            }
        }
    
    
        /// <summary>
        /// 序列化对象为json
        /// </summary>
        /// <typeparam name="T">类型</typeparam>
        /// <param name="t">对象</param>
        /// <returns></returns>
        public  string JsonSerializer<T>(T t)
        {
            DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
            MemoryStream ms = new MemoryStream();
            ser.WriteObject(ms, t);
            string jsonString = Encoding.UTF8.GetString(ms.ToArray());
            ms.Close();
            return jsonString;
        }
    }
    复制代码


    运行图片:

    源码:http://files.cnblogs.com/netqq/Json.zip

  • 相关阅读:
    随机森林算法参数调优
    BAYES和朴素BAYES
    阿里云 金融接口 token PHP
    PHP mysql 按时间分组 表格table 跨度 rowspan
    MySql按周,按月,按日分组统计数据
    PHP 获取今日、昨日、本周、上周、本月的等等常用的起始时间戳和结束时间戳的时间处理类
    thinkphp5 tp5 会话控制 session 登录 退出 检查检验登录 判断是否应该跳转到上次url
    微信 模板消息
    php 腾讯 地图 api 计算 坐标 两点 距离 微信 网页 WebService API
    php添加http头禁止浏览器缓存
  • 原文地址:https://www.cnblogs.com/webenh/p/5775619.html
Copyright © 2011-2022 走看看