TableConverter.cs 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. using Infragistics.Win.UltraWinGrid;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Data;
  5. using System.Linq;
  6. using System.Text;
  7. namespace Core.StlMes.Client.Mcp.Treatment.HeatTreatment
  8. {
  9. public class JsonHelper
  10. {
  11. public static string ToJson(DataTable dt)
  12. {
  13. StringBuilder jsonBuilder = new StringBuilder();
  14. jsonBuilder.Append("[");
  15. for (int i = 0; i < dt.Rows.Count; i++)
  16. {
  17. jsonBuilder.Append("{");
  18. for (int j = 0; j < dt.Columns.Count; j++)
  19. {
  20. jsonBuilder.Append("'");
  21. jsonBuilder.Append(GetLanguageFormat(dt.Columns[j].ColumnName, true));
  22. jsonBuilder.Append("':'");
  23. jsonBuilder.Append(escape(dt.Rows[i][j].ToString()));
  24. jsonBuilder.Append("',");
  25. }
  26. jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
  27. jsonBuilder.Append("},");
  28. }
  29. jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
  30. jsonBuilder.Append("]");
  31. return jsonBuilder.ToString();
  32. }
  33. public static string ToJson(UltraGrid dt)
  34. {
  35. StringBuilder jsonBuilder = new StringBuilder();
  36. jsonBuilder.Append("[");
  37. for (int i = 0; i < dt.Rows.Count; i++)
  38. {
  39. jsonBuilder.Append("{");
  40. for (int j = 0; j < dt.Rows.Count; j++)
  41. {
  42. jsonBuilder.Append("'");
  43. jsonBuilder.Append(GetLanguageFormat(dt.Rows[j].ToString(), true));
  44. jsonBuilder.Append("':'");
  45. jsonBuilder.Append(escape(dt.Rows[i].ToString()));
  46. jsonBuilder.Append("',");
  47. }
  48. jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
  49. jsonBuilder.Append("},");
  50. }
  51. jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
  52. jsonBuilder.Append("]");
  53. return jsonBuilder.ToString();
  54. }
  55. private static string GetLanguageFormat(string strName, bool isLowerBegin)
  56. {
  57. string[] strs = strName.Split('_');
  58. strName = "";
  59. for (int i = 0; i < strs.Length; i++)
  60. {
  61. if (i == 0 && isLowerBegin)
  62. {
  63. strName += strs[i].ToLower();
  64. }
  65. else
  66. {
  67. strName += strs[i].Substring(0, 1).ToUpper() + strs[i].Substring(1).ToLower();
  68. }
  69. }
  70. return strName;
  71. }
  72. public static string ToJson(DataRow dr)
  73. {
  74. StringBuilder jsonBuilder = new StringBuilder();
  75. jsonBuilder.Append("{");
  76. for (int j = 0; j < dr.Table.Columns.Count; j++)
  77. {
  78. jsonBuilder.Append("\"");
  79. jsonBuilder.Append(dr.Table.Columns[j].ColumnName);
  80. jsonBuilder.Append("\":\"");
  81. jsonBuilder.Append(escape(dr[j].ToString()));
  82. jsonBuilder.Append("\",");
  83. }
  84. jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
  85. jsonBuilder.Append("}");
  86. return jsonBuilder.ToString();
  87. }
  88. public static string ToJson(UltraGridRow row)
  89. {
  90. StringBuilder jsonBuilder = new StringBuilder();
  91. jsonBuilder.Append("{");
  92. for (int j = 0; j < row.Cells.Count; j++)
  93. {
  94. jsonBuilder.Append("\"");
  95. //jsonBuilder.Append(row.Cells[j].Column.Key);
  96. jsonBuilder.Append(GetLanguageFormat(row.Cells[j].Column.Key, true));
  97. jsonBuilder.Append("\":\"");
  98. jsonBuilder.Append(escape(row.Cells[j].Value.ToString()));
  99. jsonBuilder.Append("\",");
  100. }
  101. jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
  102. jsonBuilder.Append("}");
  103. return jsonBuilder.ToString();
  104. }
  105. /// <summary>
  106. /// json特殊字符转义
  107. /// </summary>
  108. /// <param name="json">old json</param>
  109. /// <returns>new json</returns>
  110. private static string escape(string json)
  111. {
  112. string newJson = "";
  113. if (!string.IsNullOrEmpty(json))
  114. {
  115. newJson = json.Replace("\\", "\\\\").Replace("\r", "\\r").Replace("\n", "\\n").Replace("\"", "\\\"");
  116. }
  117. return newJson;
  118. }
  119. }
  120. }