zoukankan      html  css  js  c++  java
  • 序列化各个类型成JSON XML实例

    LitJson组件序列化请参考http://www.cnblogs.com/leee/p/4437230.html

    XML序列化请参考http://www.cnblogs.com/leee/p/4244549.html

    这篇实例是关于JavaScriptSerializer对各个类型的序列化。

    将一个类的实例序列成json

        public class Person
      {
      
         public string Name { get; set; }
         public int Age { get; set; }
      }
    
       Person p1 = new Person();
       p1.Name = "like";
       p1.Age = 24;
       JavaScriptSerializer javascriptSerializer = new JavaScriptSerializer();
       var json = javascriptSerializer.Serialize(p1);
       Response.Write(json);//{"Name":"like","Age":24}
    

      

    将一个序列序列成“数组”

                string[] arr = new string[] { "s", "dd", "fff" };
                JavaScriptSerializer javascriptSerializer = new JavaScriptSerializer();
                var json = javascriptSerializer.Serialize(arr);
                Response.Write(json);//["s","dd","fff"]
    

      

    将一个list序列成“数组”

                List<string> list = new List<string>();
                list.Add("sss");
                list.Add("dd");
                JavaScriptSerializer javascriptSerializer = new JavaScriptSerializer();
                var json = javascriptSerializer.Serialize(list);
                Response.Write(json);//["sss","dd"]
    

      

    将一个无序字典hashtable序列成json

                Hashtable has = new Hashtable();
                has.Add("1", "sada");
                has.Add("5", "sadjdi");
                JavaScriptSerializer javascriptSerializer = new JavaScriptSerializer();
                var json = javascriptSerializer.Serialize(has);
                Response.Write(json);//{"1":"sada","5":"sadjdi"}
    

      

    将一个泛型字典序列成json

                Dictionary<string, string> dic = new Dictionary<string, string>();
                dic.Add("first", "sasa");
                dic.Add("second", "dddd");
                JavaScriptSerializer javascriptSerializer = new JavaScriptSerializer();
                var json = javascriptSerializer.Serialize(dic);
                Response.Write(json);//{"first":"sasa","second":"dddd"}
    

      

    将一个Datatable序列成数组

    public string DateTableToJson(DataTable dt)
            {
                List<Dictionary<string, object>> list = new List<Dictionary<string, object>>();
                foreach (DataRow dr in dt.Rows)
                {
                    Dictionary<string, object> result = new Dictionary<string, object>();
                    foreach (DataColumn dc in dt.Columns)
                    {
                        result.Add(dc.ColumnName, dr[dc]);
                    }
                    list.Add(result);
                }
                JavaScriptSerializer javascriptSerializer = new JavaScriptSerializer();
                var json = javascriptSerializer.Serialize(list);
                return json;
            }

    手动写一个datatable 

                //手动写一个datatable
                DataTable dt = new DataTable("cart");
                DataColumn l0 = new DataColumn("编号", Type.GetType("System.Int32"));
                DataColumn l1 = new DataColumn("姓名", Type.GetType("System.String"));
                DataColumn l2 = new DataColumn("年龄", Type.GetType("System.Int16"));
                DataColumn l3 = new DataColumn("身高", Type.GetType("System.Int16"));
                DataColumn l4 = new DataColumn("视力", Type.GetType("System.Int64"));
                DataColumn l5 = new DataColumn("创建时间", Type.GetType("System.DateTime"));
                DataColumn[] col = { l0, l1, l2, l3, l4, l5, };
                dt.Columns.AddRange(col);
                for (int i = 0; i < 5; i++)
                {
                    DataRow row = dt.NewRow(); //new DataRow();
                    row["编号"] = i + 1;
                    row["姓名"] = "小王";
                    row["年龄"] = 18;
                    row["身高"] = 1516;
                    row["视力"] = 15659;
                    row["创建时间"] = DateTime.Now.ToLocalTime();
                    dt.Rows.Add(row);
                }
                Response.Write(DateTableToJson(dt));
                //  [
                //  {"编号":1,"姓名":"小王","年龄":18,"身高":1516,"视力":15659,"创建时间":"/Date(1443362884990)/"},
                //  {"编号":2,"姓名":"小王","年龄":18,"身高":1516,"视力":15659,"创建时间":"/Date(1443362884990)/"},
                //  {"编号":3,"姓名":"小王","年龄":18,"身高":1516,"视力":15659,"创建时间":"/Date(1443362884990)/"},
                //  {"编号":4,"姓名":"小王","年龄":18,"身高":1516,"视力":15659,"创建时间":"/Date(1443362884990)/"},
                //  {"编号":5,"姓名":"小王","年龄":18,"身高":1516,"视力":15659,"创建时间":"/Date(1443362884990)/"}
                //  ]
    

      

     

      

      

  • 相关阅读:
    day 08 小结
    day 07作业
    逆向---入坑记
    Codeforces Round #523 (Div. 2) B,D
    VIM一键配置
    zoj 2704 Brackets 用栈维护括号匹配 (8-A)
    zoj 2840 File Searching
    zoj 1698 Easier Done Than Said?
    13暑假集训6 总结
    13暑假集训#7 总结
  • 原文地址:https://www.cnblogs.com/leee/p/4842867.html
Copyright © 2011-2022 走看看