zoukankan      html  css  js  c++  java
  • ASP.NET(C#) Json序列化反序列化帮助类Jsonhelper

    原文地址:https://ken.io/note/csharp-asp.net-jsonhelper

    using System;
    using System.Collections.Generic;
    using System.Web;
    using System.Web.Script.Serialization;
    using System.Data;
    
    namespace Utils
    {
        /// <summary>
        /// JSON帮助类
        /// </summary>
        public class JsonHelper
        {
            /// <summary>
            /// 对象转JSON
            /// </summary>
            /// <param name="obj">对象</param>
            /// <returns>JSON格式的字符串</returns>
            public static string ObjectToJSON(object obj)
            {
                JavaScriptSerializer jss = new JavaScriptSerializer();
                try
                {
                    return jss.Serialize(obj);
                }
                catch (Exception ex)
                {
    
                    throw new Exception("JSONHelper.ObjectToJSON(): " + ex.Message);
                }
            }
    
            /// <summary>
            /// 数据表转键值对集合
            /// 把DataTable转成 List集合, 存每一行
    
            /// 集合中放的是键值对字典,存每一列
    
            /// </summary>
            /// <param name="dt">数据表</param>
            /// <returns>哈希表数组</returns>
            public static List<Dictionary<string, object>> DataTableToList(DataTable dt)
            {
                List<Dictionary<string, object>> list
                     = new List<Dictionary<string, object>>();
    
                foreach (DataRow dr in dt.Rows)
                {
                    Dictionary<string, object> dic = new Dictionary<string, object>();
                    foreach (DataColumn dc in dt.Columns)
                    {
                        dic.Add(dc.ColumnName, dr[dc.ColumnName]);
                    }
                    list.Add(dic);
                }
                return list;
            }
    
            /// <summary>
            /// 数据集转键值对数组字典
            /// </summary>
            /// <param name="dataSet">数据集</param>
            /// <returns>键值对数组字典</returns>
            public static Dictionary<string, List<Dictionary<string, object>>> DataSetToDic(DataSet ds)
            {
                Dictionary<string, List<Dictionary<string, object>>> result = new Dictionary<string, List<Dictionary<string, object>>>();
    
                foreach (DataTable dt in ds.Tables)
                    result.Add(dt.TableName, DataTableToList(dt));
    
                return result;
            }
    
            /// <summary>
            /// 数据表转JSON
            /// </summary>
            /// <param name="dataTable">数据表</param>
            /// <returns>JSON字符串</returns>
            public static string DataTableToJSON(DataTable dt)
            {
                return ObjectToJSON(DataTableToList(dt));
            }
    
            /// <summary>
            /// JSON文本转对象,泛型方法
            /// </summary>
            /// <typeparam name="T">类型</typeparam>
            /// <param name="jsonText">JSON文本</param>
            /// <returns>指定类型的对象</returns>
            public static T JSONToObject<T>(string jsonText)
            {
                JavaScriptSerializer jss = new JavaScriptSerializer();
                try
                {
                    return jss.Deserialize<T>(jsonText);
                }
                catch (Exception ex)
                {
                    throw new Exception("JSONHelper.JSONToObject(): " + ex.Message);
                }
            }
    
            /// <summary>
            /// 将JSON文本转换为数据表数据
            /// </summary>
            /// <param name="jsonText">JSON文本</param>
            /// <returns>数据表字典</returns>
            public static Dictionary<string, List<Dictionary<string, object>>> TablesDataFromJSON(string jsonText)
            {
                return JSONToObject<Dictionary<string, List<Dictionary<string, object>>>>(jsonText);
            }
    
            /// <summary>
            /// 将JSON文本转换成数据行
            /// </summary>
            /// <param name="jsonText">JSON文本</param>
            /// <returns>数据行的字典</returns>
            public static Dictionary<string, object> DataRowFromJSON(string jsonText)
            {
                return JSONToObject<Dictionary<string, object>>(jsonText);
            }
        }
    }
  • 相关阅读:
    Java中的集合类
    Java中的包装类
    Java中的多线程总结(转)
    Java开发中的23种设计模式详解 (转)
    Java中异常处理和设计
    Jmeter的ForEach控制器
    Jmeter事务控制器
    Jmeter下线程顺序启动
    Jmeter跨线程调用参数
    Jmeter使用Python
  • 原文地址:https://www.cnblogs.com/zhaoyl9/p/11307190.html
Copyright © 2011-2022 走看看