JsonHelper(Json帮助类)

  1 /// <summary>
  2     /// Json帮助类
  3     /// </summary>
  4     public class JsonHelper
  5     {
  6         /// <summary>
  7         /// 将对象序列化为JSON格式
  8         /// </summary>
  9         /// <param name="o">对象</param>
 10         /// <returns>json字符串</returns>
 11         public static string SerializeObject(object o)
 12         {
 13             string json = JsonConvert.SerializeObject(o);
 14             return json;
 15         }
 16         /// <summary>
 17         /// json 转换为object
 18         /// </summary>
 19         /// <param name="json"></param>
 20         /// <returns></returns>
 21         public static object DeserializeObject(string json)
 22         {
 23             return JsonConvert.DeserializeObject(json);
 24         }
 25         /// <summary>
 26         /// 将对象序列化为JSON格式
 27         /// </summary>
 28         /// <param name="o">对象</param>
 29         /// <returns>json字符串</returns>
 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         /// <summary>
 75         /// 解析JSON字符串生成对象实体
 76         /// </summary>
 77         /// <typeparam name="T">对象类型</typeparam>
 78         /// <param name="json">json字符串(eg.{"ID":"112","Name":"石子儿"})</param>
 79         /// <returns>对象实体</returns>
 80         public static T DeserializeJsonToObject<T>(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         /// <summary>
 90         /// 解析JSON数组生成对象实体集合
 91         /// </summary>
 92         /// <typeparam name="T">对象类型</typeparam>
 93         /// <param name="json">json数组字符串(eg.[{"ID":"112","Name":"石子儿"}])</param>
 94         /// <returns>对象实体集合</returns>
 95         public static List<T> DeserializeJsonToList<T>(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<T>));
100             List<T> list = o as List<T>;
101             return list;
102         }
103 
104         /// <summary>
105         /// 反序列化JSON到给定的匿名对象.
106         /// </summary>
107         /// <typeparam name="T">匿名对象类型</typeparam>
108         /// <param name="json">json字符串</param>
109         /// <param name="anonymousTypeObject">匿名对象</param>
110         /// <returns>匿名对象</returns>
111         public static T DeserializeAnonymousType<T>(string json, T anonymousTypeObject)
112         {
113             T t = JsonConvert.DeserializeAnonymousType(json, anonymousTypeObject);
114             return t;
115         }
116 
117         #region dataTable转换成Json格式
118         /// <summary>      
119         /// dataTable转换成Json格式      
120         /// </summary>      
121         /// <param name="dt"></param>      
122         /// <returns></returns>      
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         /// <summary>      
153         /// DataSet转换成Json格式      
154         /// </summary>      
155         /// <param name="ds">DataSet</param>      
156         /// <returns></returns>      
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
收藏
关注
评论
原文地址:https://www.cnblogs.com/yidengbone/p/6600694.html