• .net Json对象序列化和反序列化


    using System;
    using System.Collections.Generic;
    using System.Web;
    using System.Web.Script.Serialization;
    using System.Data;
    namespace Sheng.Common
    {
    /// <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);
    }
    }
    }
  • 相关阅读:
    [转]线程同步
    [转]C#线程同步(1)- 临界区&Lock
    获取系统空闲时间
    [转]一分钟明白 VS manifest 原理
    泛型总结
    wpf listbox touch 整个窗口移动
    git问题 next fetch will store in remotes/origin
    创建maven项目出现的问题
    JPA
    JDK JRE JVM
  • 原文地址:https://www.cnblogs.com/hubcarl/p/1725997.html
Copyright © 2020-2023  润新知