CNAS取数仪器端升级
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

TransConvert.cs 3.3KB

4ヶ月前
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. using Newtonsoft.Json;
  2. using System;
  3. using System.Collections;
  4. using System.Collections.Generic;
  5. using System.Data;
  6. using System.IO;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Web.Script.Serialization;
  10. using System.Xml;
  11. using System.Xml.Serialization;
  12. namespace CnasSynchronousCommon
  13. {
  14. public class TransConvert
  15. {
  16. /// <summary>
  17. /// datatable传Json
  18. /// </summary>
  19. /// <param name="dt"></param>
  20. /// <returns></returns>
  21. // public static string DataTableToJSON(DataTable dt)
  22. //{
  23. // StringBuilder jsonBuilder = new StringBuilder();
  24. // jsonBuilder.Append("[");
  25. // for (int i = 0; i<dt.Rows.Count; i++)
  26. // {
  27. // jsonBuilder.Append("{");
  28. // for (int j = 0; j<dt.Columns.Count; j++)
  29. // {
  30. // jsonBuilder.Append("\"");
  31. // jsonBuilder.Append(dt.Columns[j].ColumnName);
  32. // jsonBuilder.Append("\":\"");
  33. // jsonBuilder.Append(dt.Rows[i][j].ToString());
  34. // jsonBuilder.Append("\",");
  35. // }
  36. // jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
  37. // jsonBuilder.Append("},");
  38. // }
  39. // jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
  40. // jsonBuilder.Append("]");
  41. // return jsonBuilder.ToString();
  42. // }
  43. #region DataTable与JSON的转换
  44. public static string DataTableToJSON(DataTable dt)
  45. {
  46. return Newtonsoft.Json.JsonConvert.SerializeObject(dt);
  47. }
  48. public static DataTable JSONToDataTable(string strJson)
  49. {
  50. return Newtonsoft.Json.JsonConvert.DeserializeObject(strJson, typeof(DataTable)) as DataTable;
  51. }
  52. #endregion
  53. #region DataTable与XML的转换
  54. public static string DataTableToXML(DataTable dt) //返回stringbuilder类型
  55. {
  56. dt.TableName = "0";
  57. StringBuilder stb = new StringBuilder();
  58. XmlSerializer serializer = new XmlSerializer(typeof(DataTable));
  59. XmlWriter writer = XmlWriter.Create(stb);
  60. serializer.Serialize(writer, dt);
  61. writer.Close();
  62. return stb.ToString();
  63. }
  64. public static DataTable XMLToDataTable(string strXml) //返回datatable类型
  65. {
  66. StringReader sr = new StringReader(strXml);
  67. XmlTextReader xtr = new XmlTextReader(sr);
  68. DataTable dt = new DataTable();
  69. dt.ReadXml(xtr);
  70. sr.Close();
  71. xtr.Close();
  72. return dt;
  73. }
  74. #endregion
  75. /// <summary>
  76. /// List<DataRow>转Json
  77. /// </summary>
  78. /// <param name="lst"></param>
  79. /// <returns></returns>
  80. public static string ListToString(List<DataRow> lst)
  81. {
  82. return JsonConvert.SerializeObject(lst);
  83. }
  84. /// <summary>
  85. /// json传List<DataRow>
  86. /// </summary>
  87. /// <param name="strList"></param>
  88. /// <returns></returns>
  89. public static List<DataRow> StringToList(string strList)
  90. {
  91. return JsonConvert.DeserializeObject<List<DataRow>>(strList);
  92. }
  93. }
  94. }