zoukankan      html  css  js  c++  java
  • 怎样在ASP.NET(C#) 使用Json序列化反序列化问题?

    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);
            }
        }
    }
    .NET技术资料
  • 相关阅读:
    A survey for developing of reinforcement learning environments
    04-STM32+ESP8266+AIR202基本控制篇-功能2-微信小程序使用APUConfig配网绑定ESP8266,并通过MQTT和ESP8266实现远程通信控制
    03-STM32+ESP8266+AIR202基本控制篇-功能1-APP使用APUConfig配网绑定ESP8266,并通过MQTT和ESP8266实现远程通信控制
    02-STM32+ESP8266+AIR202基本控制篇- 基本控制篇概述
    01-STM32+ESP8266+AIR202基本控制篇-硬件使用说明
    深入学习Redis(3):主从复制(转)
    k8s常用命令
    photoshop,3dsmax,maya等图形图像动画学习资料收集
    工业机器人(ABB+Kuka)资料打包下载
    .DS_Store 是什么
  • 原文地址:https://www.cnblogs.com/zmj520/p/9509275.html
Copyright © 2011-2022 走看看