zoukankan      html  css  js  c++  java
  • 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
    收藏
    关注
    评论
  • 相关阅读:
    区块链是怎么运行的
    区块链技术到底是什么鬼(二)
    区块链技术到底是什么鬼(一)
    关于SetTimer间隔小于OmTimer执行时间的问题
    区块链
    浏览器原生 form 表单POST 数据的两种方式
    动态调用dll遇到的问题
    转-tcp建立和释放详解
    浏览器使用ActiveX控件
    C可变参数函数 实现
  • 原文地址:https://www.cnblogs.com/yidengbone/p/6600694.html
Copyright © 2011-2022 走看看