DataTable、Dataset转Json
一、DataTable转Json
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
public static string DataTableToJson1(string jsonName, DataTable dt) { StringBuilder Json = new StringBuilder(); Json.Append("{"" + jsonName + "":["); if (dt.Rows.Count > 0) { for (int i = 0; i < dt.Rows.Count; i++) { Json.Append("{"); for (int j = 0; j < dt.Columns.Count; j++) { Json.Append(""" + dt.Columns[j].ColumnName.ToString() + "":"" + dt.Rows[i][j].ToString() + """); if (j < dt.Columns.Count - 1) { Json.Append(","); } } Json.Append("}"); if (i < dt.Rows.Count - 1) { Json.Append(","); } } } Json.Append("]}"); return Json.ToString(); }
二、Dataset转Json
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
public static string Dataset2Json(DataSet ds) { StringBuilder json = new StringBuilder(); foreach (DataTable dt in ds.Tables) { json.Append("{""); json.Append(dt.TableName); json.Append("":"); json.Append(DataTable2Json(dt)); json.Append("}"); } return json.ToString(); }
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
public static string DataTableToJson2(DataTable dt) { StringBuilder Json = new StringBuilder(); Json.Append("{"" + dt.TableName + "":["); if (dt.Rows.Count > 0) { for (int i = 0; i < dt.Rows.Count; i++) { Json.Append(" " + "{"device":" + " " + "{"); for (int j = 0; j < dt.Columns.Count; j++) { string columName = dt.Columns[j].ColumnName.ToString(); string columValue = dt.Rows[i][j].ToString(); if (j == 9)//"radios":{"wifiMAC":~~}, Json.Append(""radios":{"" + columName + "":"" + columValue + ""}"); else if (j == 10 || j == 11)//"partDetails":{"mainLogicBoardSerialNumber":~~, "batterySerialNumber":~~ } { if (j == 10) Json.Append(""partDetails":{"" + columName + "":"" + columValue + """); else Json.Append(""" + columName + "":"" + columValue + ""}}"); } else if (j == 12) Json.Append(""order":{"" + columName + "":"" + columValue + """); else if (j == 16) Json.Append(""" + columName + "":"" + columValue + ""}"); else Json.Append(""" + columName + "":"" + columValue + """); if (j < dt.Columns.Count - 1 ) Json.Append(","); } Json.Append("}"); if (i < dt.Rows.Count - 1) { Json.Append(","); } } } Json.Append(" " + "]}"); return Json.ToString(); }