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

posted on 2012-10-25 15:48  freexiaoyu  阅读(20039)  评论(0编辑  收藏  举报