| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- using Infragistics.Win.UltraWinGrid;
- using System.Data;
- using System.Text;
- namespace Core.StlMes.Client.Judge.Commons
- {
- public class JsonHelper
- {
- public static string ToJson(DataTable dt)
- {
- StringBuilder jsonBuilder = new StringBuilder();
- jsonBuilder.Append("[");
- for (int i = 0; i < dt.Rows.Count; i++)
- {
- jsonBuilder.Append("{");
- for (int j = 0; j < dt.Columns.Count; j++)
- {
- jsonBuilder.Append("'");
- jsonBuilder.Append(dt.Columns[j].ColumnName);
- jsonBuilder.Append("':'");
- jsonBuilder.Append(escape(dt.Rows[i][j].ToString()));
- jsonBuilder.Append("',");
- }
- jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
- jsonBuilder.Append("},");
- }
- jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
- jsonBuilder.Append("]");
- return jsonBuilder.ToString();
- }
- public static string ToJson(DataRow dr)
- {
- StringBuilder jsonBuilder = new StringBuilder();
- jsonBuilder.Append("{");
- for (int j = 0; j < dr.Table.Columns.Count; j++)
- {
- jsonBuilder.Append("\"");
- jsonBuilder.Append(dr.Table.Columns[j].ColumnName);
- jsonBuilder.Append("\":\"");
- jsonBuilder.Append(escape(dr[j].ToString()));
- jsonBuilder.Append("\",");
- }
- jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
- jsonBuilder.Append("}");
- return jsonBuilder.ToString();
- }
- public static string ToJson(UltraGridRow row)
- {
- StringBuilder jsonBuilder = new StringBuilder();
- jsonBuilder.Append("{");
- for (int j = 0; j < row.Cells.Count; j++)
- {
- jsonBuilder.Append("\"");
- jsonBuilder.Append(row.Cells[j].Column.Key);
- jsonBuilder.Append("\":\"");
- jsonBuilder.Append(escape(row.Cells[j].Value.ToString()));
- jsonBuilder.Append("\",");
- }
- jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
- jsonBuilder.Append("}");
- return jsonBuilder.ToString();
- }
- /// <summary>
- /// json特殊字符转义
- /// </summary>
- /// <param name="json">old json</param>
- /// <returns>new json</returns>
- private static string escape(string json)
- {
- string newJson = "";
- if (!string.IsNullOrEmpty(json))
- {
- newJson = json.Replace("\\", "\\\\").Replace("\r", "\\r").Replace("\n", "\\n").Replace("\"", "\\\"");
- }
- return newJson;
- }
- public static DataTable toTable(string json)
- {
- return Newtonsoft.Json.JsonConvert.DeserializeObject(json, typeof(DataTable)) as DataTable;
- }
- }
- }
|