zoukankan      html  css  js  c++  java
  • Newtonsoft.Json用法

    修改http://www.cnblogs.com/freexiaoyu/archive/2012/08/21/2649333.html用法

    还是原来的JSON格式

    Model类

    View Code
    namespace Maticsoft.Model
    {
        /// <summary>
        ///返回JSON属性
        /// </summary>
        [Serializable]
       public class BackInfo<T>
        { 
            /// <summary>
            /// 状态
            /// </summary>
            public String result { get; set; }
            /// <summary>
            /// 返回数据
            /// </summary>
            public List<T> info { get; set; }
        }
    
        /// <summary>
        ///返回JSON属性
        /// </summary>
        [Serializable]
        public class BackDataTable<T>
        {
            /// <summary>
            /// 状态
            /// </summary>
            public String result { get; set; }
            /// <summary>
            /// 返回数据
            /// </summary>
            public T info { get; set; }
        }
    }

    序列化JSON

     Classifyinfo = Json.JsonInfo("200", JsonConvert.SerializeObject(dt)); //这里的dt是datatable

    反序列化JOSN

    View Code
       String JsonData = GetPage("http://localhost:3448/app/api.aspx", "action=ClassifyList&parentID=2");
                Maticsoft.Model.BackDataTable<DataTable> BackInfo = (Maticsoft.Model.BackDataTable<DataTable>)JsonConvert.DeserializeObject(JsonData, typeof(Maticsoft.Model.BackDataTable<DataTable>));
                if (BackInfo.result != "200")
                {
                   //失败
                }
                DataTable dt = BackInfo.info;
                    this.DropDownList3.DataSource = dt;
                    this.DropDownList3.DataTextField = "Name";
                    this.DropDownList3.DataValueField = "CID";
                    this.DropDownList3.DataBind(); 
    
                Maticsoft.Model.BackDataTable<List<Model.Iphone_Classify>> BackInfo1 =
                    (Maticsoft.Model.BackDataTable<List<Model.Iphone_Classify>>)
                    JsonConvert.DeserializeObject(JsonData, typeof(Maticsoft.Model.BackDataTable<List<Model.Iphone_Classify>>));
    
                if (BackInfo1.result != "200")
                {
                    //失败 
                }
                /*List<Model.Iphone_Classify> classify = BackInfo1.info;
                   this.DropDownList3.DataSource = classify;
                   this.DropDownList3.DataTextField = "Name";
                   this.DropDownList3.DataValueField = "CID";
                   this.DropDownList3.DataBind();*/
    
    
                Maticsoft.Model.BackInfo<Model.Iphone_Classify> BackInfo2 = (Maticsoft.Model.BackInfo<Model.Iphone_Classify>)
                    JsonConvert.DeserializeObject(JsonData, typeof(Maticsoft.Model.BackInfo<Model.Iphone_Classify>));
                if (BackInfo2.result != "200")
                {//失败 
                }
                /*List<Model.Iphone_Classify> classify = BackInfo2.info;
                   this.DropDownList3.DataSource = classify;
                   this.DropDownList3.DataTextField = "Name";
                   this.DropDownList3.DataValueField = "CID";
                   this.DropDownList3.DataBind();*/

    如果序列化JSON直接用的是datatable的话反序列化直接用

    DataTable dt=(DataTable)JsonConvert.DeserializeObject<DataTable>(JsonData);

  • 相关阅读:
    微信小程序:动画(Animation)
    小程序滚动事件之头部渐隐渐现demo
    小程序tab栏可滑动,可点击居中demo
    ES7中前端异步特性:async、await。
    vue中生成二维码
    vue之vue-cookies
    echarts中boundaryGap属性
    ES6数组方法总结
    手写自己的ORM框架For SQlServer(简单的CURD)
    Sqlsever新增作业执行计划傻瓜式操作
  • 原文地址:https://www.cnblogs.com/freexiaoyu/p/2738974.html
Copyright © 2011-2022 走看看