zoukankan      html  css  js  c++  java
  • 关于对象序列化json 说说

    下面一个json格式图(说一下,json 其实就是js 数组和对象的一种字符串表现形式 var obj=[] 或者var obj={}  )

    var json= {} 如下

    从图中看 json中有两个成员分别是 total 和 ship(而ship里面有多个对象,那么我们就知道 ship是一个List<ship>列表)

    下面我们在C#中模拟输出此效果

       public class JsonHelper
       {
           /// <summary>
           /// JSON序列化
           /// </summary>
           public static 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;
           }
    
           /// <summary>
           /// JSON反序列化
           /// </summary>
    
           public static T JsonDeserialize<T>(string jsonString)
           {
               DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
               MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString));
               T obj = (T)ser.ReadObject(ms);
               return obj;
           }
    
       }

    //上面jsonHelp是帮助类

     public class rows
        {
            public int itemid { get; set; }
            public int productid { get; set; }
            public string listprice { get; set; }
            public string unitcost { get; set; }
            public string status { get; set; }
            public string attr1 { get; set; }       
        }
        public class Product
        {
            public int total { get; set; }
    
            public List<rows> ship { get; set; } //列表集对像 属性
        }
     protected void Page_Load(object sender, EventArgs e)
            {
                Product prt = new Product(); //主对象
    
                rows  r = new rows();                     
                List<rows> list_row = new List<rows>(); //列表 list
    
                for (int i = 0; i < 3; i++)
                {
                    r.itemid = i;
                    r.productid = i;
                    r.listprice = "ss_" + i;
                    r.unitcost = "un_" + i;
                    r.status = "Status" + i;
                    r.attr1 = "atrr" + i;
                    list_row.Add(r);              
                }
    
                prt.total = 10;
                prt.ship = list_row;
                Response.Write(JsonHelper.JsonSerializer<Product>(prt)); //序列化输出
    
            }

    最后昨到上面输出的json字符串

  • 相关阅读:
    SQL优化——union与union all 、left join 和 inner join 及 内连接
    用jdk自带工具jvisualvm查看系统内存使用情况
    不重启也能清理catalina.out日志的方法
    自己用crontab弄个定时任务备份日志重启项目
    三层架构的一点理解以及Dapper一对多查询
    Nuget包添加文件
    WPF启动流程-自己手写Main函数
    WPF实现手势解锁
    VS提交码云权限问题
    Json转Dictionary
  • 原文地址:https://www.cnblogs.com/yzenet/p/3493007.html
Copyright © 2011-2022 走看看