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);
            }
        }
    }
  • 相关阅读:
    函数
    python操作文件
    POJ-2689-Prime Distance(素数区间筛法)
    POJ-2891-Strange Way to Express Integers(线性同余方程组)
    POJ-2142-The Balance
    POJ-1061-青蛙的约会(扩展欧几里得)
    Educational Codeforces Round 75 (Rated for Div. 2) D. Salary Changing
    Educational Codeforces Round 75 (Rated for Div. 2) C. Minimize The Integer
    Educational Codeforces Round 75 (Rated for Div. 2) B. Binary Palindromes
    Educational Codeforces Round 75 (Rated for Div. 2) A. Broken Keyboard
  • 原文地址:https://www.cnblogs.com/zhaoyl9/p/11307190.html
Copyright © 2011-2022 走看看