• 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);

  • 相关阅读:
    16款值得一用的iPhone线框图模板 (PSD & Sketch)
    设计神器
    {CF812}
    hiho1080(多标记线段树)
    {容斥原理}
    {dp入门}
    {AC自动机}
    CF807
    Trie树
    杂记
  • 原文地址:https://www.cnblogs.com/freexiaoyu/p/2738974.html
Copyright © 2020-2023  润新知