博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JsonHelper(Json帮助类)
阅读量:7022 次
发布时间:2019-06-28

本文共 5417 字,大约阅读时间需要 18 分钟。

1 ///   2     /// Json帮助类  3     ///   4     public class JsonHelper  5     {  6         ///   7         /// 将对象序列化为JSON格式  8         ///   9         /// 对象 10         /// 
json字符串
11 public static string SerializeObject(object o) 12 { 13 string json = JsonConvert.SerializeObject(o); 14 return json; 15 } 16 /// 17 /// json 转换为object 18 /// 19 /// 20 ///
21 public static object DeserializeObject(string json) 22 { 23 return JsonConvert.DeserializeObject(json); 24 } 25 /// 26 /// 将对象序列化为JSON格式 27 /// 28 /// 对象 29 ///
json字符串
30 public static string SerializeDatatable(DataTable dt) 31 { 32 //string json = JsonConvert.SerializeObject(dt, new DataTableConverter()); 33 //return json; 34 StringBuilder JsonString = new StringBuilder(); 35 //Exception Handling 36 if (dt != null && dt.Rows.Count > 0) 37 { 38 JsonString.Append("[ "); 39 for (int i = 0; i < dt.Rows.Count; i++) 40 { 41 JsonString.Append("{ "); 42 for (int j = 0; j < dt.Columns.Count; j++) 43 { 44 if (j < dt.Columns.Count - 1) 45 { 46 JsonString.Append("\"" + dt.Columns[j].ColumnName.ToString() + "\":" + "\"" + dt.Rows[i][j].ToString() + "\","); 47 } 48 else if (j == dt.Columns.Count - 1) 49 { 50 JsonString.Append("\"" + dt.Columns[j].ColumnName.ToString() + "\":" + "\"" + dt.Rows[i][j].ToString() + "\""); 51 } 52 } 53 /*end Of String*/ 54 if (i == dt.Rows.Count - 1) 55 { 56 JsonString.Append("} "); 57 } 58 else 59 { 60 JsonString.Append("}, "); 61 } 62 } 63 JsonString.Append("]"); 64 return JsonString.ToString(); 65 } 66 else 67 { 68 return null; 69 } 70 } 71 72 73 74 /// 75 /// 解析JSON字符串生成对象实体 76 /// 77 ///
对象类型
78 /// json字符串(eg.{"ID":"112","Name":"石子儿"}) 79 ///
对象实体
80 public static T DeserializeJsonToObject
(string json) where T : class 81 { 82 JsonSerializer serializer = new JsonSerializer(); 83 StringReader sr = new StringReader(json); 84 object o = serializer.Deserialize(new JsonTextReader(sr), typeof(T)); 85 T t = o as T; 86 return t; 87 } 88 89 ///
90 /// 解析JSON数组生成对象实体集合 91 /// 92 ///
对象类型
93 ///
json数组字符串(eg.[{"ID":"112","Name":"石子儿"}]) 94 ///
对象实体集合
95 public static List
DeserializeJsonToList
(string json) where T : class 96 { 97 JsonSerializer serializer = new JsonSerializer(); 98 StringReader sr = new StringReader(json); 99 object o = serializer.Deserialize(new JsonTextReader(sr), typeof(List
));100 List
list = o as List
;101 return list;102 }103 104 ///
105 /// 反序列化JSON到给定的匿名对象.106 /// 107 ///
匿名对象类型
108 ///
json字符串109 ///
匿名对象110 ///
匿名对象
111 public static T DeserializeAnonymousType
(string json, T anonymousTypeObject)112 {113 T t = JsonConvert.DeserializeAnonymousType(json, anonymousTypeObject);114 return t;115 }116 117 #region dataTable转换成Json格式118 ///
119 /// dataTable转换成Json格式 120 /// 121 ///
122 ///
123 public static string DataTableToJson(DataTable dt)124 {125 StringBuilder jsonBuilder = new StringBuilder();126 jsonBuilder.Append("{\"");127 jsonBuilder.Append(dt.TableName.ToString());128 jsonBuilder.Append("\":[");129 for (int i = 0; i < dt.Rows.Count; i++)130 {131 jsonBuilder.Append("{ ");132 for (int j = 0; j < dt.Columns.Count; j++)133 {134 jsonBuilder.Append("\"");135 jsonBuilder.Append(dt.Columns[j].ColumnName);136 jsonBuilder.Append("\":\"");137 jsonBuilder.Append(dt.Rows[i][j].ToString());138 jsonBuilder.Append("\",");139 }140 jsonBuilder.Remove(jsonBuilder.Length - 1, 1);141 jsonBuilder.Append("},");142 }143 jsonBuilder.Remove(jsonBuilder.Length - 1, 1);144 jsonBuilder.Append("]");145 jsonBuilder.Append("}");146 return jsonBuilder.ToString();147 }148 149 #endregion dataTable转换成Json格式150 151 #region DataSet转换成Json格式152 ///
153 /// DataSet转换成Json格式 154 /// 155 ///
DataSet 156 ///
157 public static string DataSetToJson(DataSet ds)158 {159 StringBuilder json = new StringBuilder();160 161 foreach (DataTable dt in ds.Tables)162 {163 json.Append("{\"");164 json.Append(dt.TableName);165 json.Append("\":");166 json.Append(DataTableToJson(dt));167 json.Append("}");168 }169 return json.ToString();170 }171 #endregion 172 }
View Code

 

转载地址:http://cycxl.baihongyu.com/

你可能感兴趣的文章