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