zoukankan      html  css  js  c++  java
  • 序列化泛型 反序列化JSON

    using System;
    
    using System.Collections.Generic;
    
    using System.Linq;
    
    using System.Text;
    
    using System.Web.Script.Serialization;
    
    using System.Reflection;
    
    using System.Data;
    
    namespace Business.Util
    {
    
        public class JsonHelper
        {
    
            public static T ConvertToEntity<T>(string sJson)
            {
    
                if (string.IsNullOrEmpty(sJson))
                {
    
                    throw new Exception("转换的JSON数据不能为空");
    
                }
    
                JavaScriptSerializer js = new JavaScriptSerializer();
    
                var objDic = js.Deserialize<T>(sJson);
    
                return objDic;
    
            }
    
            ///<summary>
    
            ///将DataTable转换成Json
    
            ///</summary>
    
            ///<param name="jsonName"></param>
    
            ///<param name="dt"></param>
    
            ///<returns></returns>
    
            public static string DataTableToJson(string jsonName, DataTable dt)
            {
    
                if (dt == null || dt.Rows.Count == 0)
                {
    
                    return "";
    
                }
    
                else
                {
    
                    StringBuilder Json = new StringBuilder();
    
                    Json.Append("{\"" + jsonName + "\":[");
    
                    for (int i = 0; i < dt.Rows.Count; i++)
                    {
    
                        Json.Append("{");
    
                        for (int j = 0; j < dt.Columns.Count; j++)
                        {
    
                            Json.Append("\"" +
                                        dt.Columns[j].ColumnName.ToString() + "\":\"" + dt.Rows[i][j].ToString() + "\"");
    
                            if (j < dt.Columns.Count - 1)
                            {
    
                                Json.Append(",");
    
                            }
    
                        }
    
                        Json.Append("}");
    
                        if (i < dt.Rows.Count - 1)
                        {
    
                            Json.Append(",");
    
                        }
    
                    }
    
                    Json.Append("]}");
    
                    return Json.ToString();
    
                }
    
            }
    
            ///<summary>
    
            ///将泛型IList转换成Json
    
            ///</summary>
    
            ///<typeparam name="T"></typeparam>
    
            ///<param name="jsonName"></param>
    
            ///<param name="IL"></param>
    
            ///<returns></returns>
    
            public static string ObjectToJson<T>(string jsonName, IList<T> IL)
            {
    
                StringBuilder Json = new StringBuilder();
    
                Json.Append("{\"" + jsonName + "\":[");
    
                if (IL.Count > 0)
                {
    
                    for (int i = 0; i < IL.Count; i++)
                    {
    
                        T obj = Activator.CreateInstance<T>();
    
                        Type type = obj.GetType();
    
                        PropertyInfo[] pis = type.GetProperties();
    
                        Json.Append("{");
    
                        for (int j = 0; j < pis.Length; j++)
                        {
    
                            Json.Append("\"" + pis[j].Name.ToString()
                                        + "\":\"" +
                                        pis[j].GetValue(IL[i], null) + "\"");
    
                            if (j < pis.Length - 1)
                            {
    
                                Json.Append(",");
    
                            }
    
                        }
    
                        Json.Append("}");
    
                        if (i < IL.Count - 1)
                        {
    
                            Json.Append(",");
    
                        }
    
                    }
    
                }
    
                Json.Append("]}");
    
                return Json.ToString();
    
            }
    
        }
    
    }
    


  • 相关阅读:
    定义通用类型,便于移植和32位、64位的编译
    映射密码的加密,解密以及暴力破解
    位移密码的加密,解密以及暴力破解
    TCP三次握手和四次挥手通俗理解
    git常用命令
    pip及npm换源
    win10安装Docker并换国内源
    搜索引擎工作原理
    wsgi_uwsgi_nginx理论知识
    课程全文检索接口
  • 原文地址:https://www.cnblogs.com/dashi/p/4034652.html
Copyright © 2011-2022 走看看