程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> c#輸出json,其中包含子json (可以含 無限級 子json)的方法思路,

c#輸出json,其中包含子json (可以含 無限級 子json)的方法思路,

編輯:C#入門知識

c#輸出json,其中包含子json (可以含 無限級 子json)的方法思路,


首頁 給出  DataTable 轉Json 的方法:

 1    public static string TableToJson(DataTable dt)
 2         {
 3             List<Dictionary<string, object>> list = new List<Dictionary<string, object>>();
 4             foreach (DataRow dr in dt.Rows)//每一行信息,新建一個Dictionary<string,object>,將該行的每列信息加入到字典
 5             {
 6                 Dictionary<string, object> result = new Dictionary<string, object>();
 7                 foreach (DataColumn dc in dt.Columns)
 8                 {
 9                     result.Add(dc.ColumnName, dr[dc].ToString());
10                 }
11                 list.Add(result);
12             }
13             return ToJson(list);//調用Serializer方法 
14         }
 1   /// <summary>
 2         /// 將集合轉換為json
 3         /// </summary>
 4         /// <param name="d"></param>
 5         /// <returns></returns>
 6         public static string ToJson(object d)
 7         {
 8             JavaScriptSerializer jss = new JavaScriptSerializer();
 9             return jss.Serialize(d);
10         }

 

具體  轉換實例:

 1 #region 獲取我的訂單
 2         public string GetMyOrders(string _StrJson)
 3         {
 4             StringBuilder sbStr = new StringBuilder();
 5             sbStr.Append("[{\"msg\":\"獲取失敗,參數錯誤。\",\"data\":\"[]\",\"state\":\"2\"}]");
 6             try
 7             {
 8                 CommonJsonModel oModel = new CommonJsonModel(Regex.Replace(_StrJson, @"\r\n", ""));
 9                 List<CommonJsonModel> lst = oModel.GetCollection();
10                 foreach (CommonJsonModel item in lst)
11                 {
12                     //[{"_Page":"1","_PageSize":"10","_Type":"1","_Status":"0","_LoginId":"15","_Profession":"390"}]
13                     int Page = item.GetValue("_Page") == "" ? 1 : Convert.ToInt32(item.GetValue("_Page"));
14                     int PageSize = item.GetValue("_PageSize") == "" ? 10 : Convert.ToInt32(item.GetValue("_PageSize"));
15                     int Type = item.GetValue("_Type") == "" ? 0 : Convert.ToInt32(item.GetValue("_Type"));
16                     int Status = item.GetValue("_Status") == "" ? 0 : Convert.ToInt32(item.GetValue("_Status"));
17                     int LoginId = item.GetValue("_LoginId") == "" ? 0 : Convert.ToInt32(item.GetValue("_LoginId"));
18                     string Profession = item.GetValue("_Profession");
19                     StringBuilder sbSqlWhere = new StringBuilder();
20                     sbSqlWhere.Append(" PersonIsdel=0");
21                     if (Status > 0) { sbSqlWhere.AppendFormat(" and State={0}", Status); }
22                     if (LoginId > 0) { sbSqlWhere.AppendFormat(" and AddPerson={0}", LoginId); }
23                     if (Profession != "")
24                     {
25                         sbSqlWhere.AppendFormat(" and BusinessId in(select ID from TB_Business where Profession={0})", Profession);
26                     }
27                     StringBuilder sbFields = new StringBuilder();
28                     sbFields.AppendFormat("*", Type);
29                     DataSet ds = bll.GetList("TB_BusinessOrders", sbFields.ToString(), "AddTime", PageSize, Page, false, true, sbSqlWhere.ToString());
30                     if (ds != null && ds.Tables[0].Rows.Count > 0)
31                     {
//第一個DataTable 32 DataTable dt = ds.Tables[0];
//新增一列子集 33 dt.Columns.Add("OrdelDetailList"); 34 foreach (DataRow dr in dt.Rows) 35 { 36 dr["OrdelDetailList"] = GetOrderDetailList(dr["ID"].ToString()); 37 } 38 sbStr.Clear();
//整 個DataTable轉Json 39 string strTemp = EasyUIJsonHelper.TableToJson(ds.Tables[0]);
//去除多余的括號轉義符號 40 strTemp = strTemp.Replace("\\", ""); 41 strTemp = strTemp.Replace("\"[{", "[{"); 42 strTemp = strTemp.Replace("]\"}", "]}");
// 完畢 43 sbStr.Append("[{\"msg\":\"獲取成功。\",\"data\":" + strTemp + ",\"state\":\"0\"}]"); 44 } 45 else 46 { 47 sbStr.Clear(); 48 sbStr.Append("[{\"msg\":\"獲取成功,無匹配數據。\",\"data\":\"[]\",\"state\":\"0\"}]"); 49 } 50 } 51 } 52 catch { } 53 return sbStr.ToString(); 54 } 55 56 private string GetOrderDetailList(string orderId) 57 { 58 StringBuilder sbStr = new StringBuilder(); 59 DataSet ds = new ZhouFu.Bll.TB_BusinessOrdersDetail().GetList("OrderId=" + orderId); 60 if (ds != null && ds.Tables[0].Rows.Count > 0) 61 { 62 DataTable dt = ds.Tables[0]; 63 sbStr.Clear(); 64 sbStr.Append(EasyUIJsonHelper.TableToJson(dt)); 65 } 66 return sbStr.ToString(); 67 } 68 #endregion

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved