后台转换JSON格式。ToJson

using System;
using System.Collections.Generic;
using System.Text;
using System.Reflection;
using System.Data;
using System.Collections;

namespace DotNet.Utilities
{
    /// <summary>
    /// 转换Json格式帮助类
    /// </summary>
    public class JsonHelper
    {
     /// <summary>
        /// DataTable转Json
        /// </summary>
        /// <param name="dt">table数据集</param>
        /// <param name="dtName">json名</param>
        /// <returns>例子{"JSON":[{"STO_ID":"26","STO_NO":"SEORD14041500014","PRO_NO":"SEORD14041500012","TOTAL_MONEY":"4.0000"}]}</returns>
        public static string DataTableToJson(DataTable dt, string dtName)
        {
            try
            {
                StringBuilder sb = new StringBuilder();
                sb.Append("{\"");
                sb.Append(dtName);
                sb.Append("\":[");
                if (DataTableHelper.IsExistRows(dt))
                {
                    foreach (DataRow dr in dt.Rows)
                    {
                        sb.Append("{");
                        foreach (DataColumn dc in dr.Table.Columns)
                        {
                            sb.Append("\"");
                            sb.Append(dc.ColumnName);
                            sb.Append("\":\"");
                            if (dr[dc] != null && dr[dc] != DBNull.Value && dr[dc].ToString() != "")
                                sb.Append(dr[dc]).Replace("\\", "/");
                            else
                                sb.Append("");
                            sb.Append("\",");
                        }
                        sb = sb.Remove(sb.Length - 1, 1);
                        sb.Append("},");
                    }
                    sb = sb.Remove(sb.Length - 1, 1);
                }
                sb.Append("]}");
                return JsonCharFilter(sb.ToString());
            }
            catch (Exception ex)
            {
                Logger.WriteLog(ex.Message);
                return "";
            }
        }
        /// <summary>
        /// Hashtable表转JSON
        /// </summary>
        /// <param name="data"></param>
        /// <param name="dtName">JSON名,例:JSON</param>
        /// <returns></returns>
        public static string HashtableToJson(Hashtable data, string dtName)
        {
            try
            {
                StringBuilder sb = new StringBuilder();
                sb.Append("{\"");
                sb.Append(dtName);
                sb.Append("\":[{");
                foreach (object key in data.Keys)
                {
                    object value = data[key];
                    sb.Append("\"");
                    sb.Append(key);
                    sb.Append("\":\"");
                    if (!String.IsNullOrEmpty(value.ToString()) && value != DBNull.Value)
                    {
                        sb.Append(value).Replace("\\", "/");
                    }
                    else
                    {
                        sb.Append(" ");
                    }
                    sb.Append("\",");
                }
                sb = sb.Remove(sb.Length - 1, 1);
                sb.Append("}]}");
                return JsonCharFilter(sb.ToString());
            }
            catch (Exception ex)
            {
                Logger.WriteLog(ex.Message);
                return "";
            }
        }
        /// <summary>
        /// 表格返回JSON
        /// </summary>
        /// <param name="dt">数据行</param>
        /// <param name="pageIndex">当前页面</param>
        /// <param name="pqGrid_Sort">要显示字段</param>
        /// <param name="count"></param>
        /// <returns></returns>
        public static string PqGridPageJson(DataTable dt, int pageIndex, string pqGrid_Sort, int count)
        {
            try
            {
                string[] Sort_Field = pqGrid_Sort.Split(',');
                StringBuilder sb = new StringBuilder();
                sb.Append("{");
                sb.Append("\"totalRecords\": " + count + ",");
                sb.Append("\"curPage\": " + pageIndex + ",");
                sb.Append("\"data\": [");
                if (DataTableHelper.IsExistRows(dt))
                {
                    foreach (DataRow dr in dt.Rows)
                    {
                        sb.Append("[");
                        foreach (string item in Sort_Field)
                        {
                            sb.Append("\"");
                            if (dr[item] != null && dr[item] != DBNull.Value && dr[item].ToString() != "")
                                sb.Append(dr[item]);
                            else
                                sb.Append("");
                            sb.Append("\",");
                        }
                        sb = sb.Remove(sb.Length - 1, 1);
                        sb.Append("],");
                    }
                    sb = sb.Remove(sb.Length - 1, 1);
                    sb.Append("]");
                    sb.Append("}");
                }
                return sb.ToString();
            }
            catch (Exception ex)
            {
                Logger.WriteLog(ex.Message);
                return "";
            }
        }
        /// <summary>
        /// 表格返回JSON
        /// </summary>
        /// <param name="pqGrid_Sort">要显示字段</param>
        /// <param name="count"></param>
        /// <returns></returns>
        public static string PqGridJson(DataTable dt, string pqGrid_Sort)
        {
            try
            {
                string[] Sort_Field = pqGrid_Sort.Split(',');
                StringBuilder sb = new StringBuilder();
                if (DataTableHelper.IsExistRows(dt))
                {
                    sb.Append("[");
                    foreach (DataRow dr in dt.Rows)
                    {
                        sb.Append("[");
                        foreach (string item in Sort_Field)
                        {
                            sb.Append("\"");
                            if (dr[item] != null && dr[item] != DBNull.Value && dr[item].ToString() != "")
                                sb.Append(dr[item]);
                            else
                                sb.Append("");
                            sb.Append("\",");
                        }
                        sb = sb.Remove(sb.Length - 1, 1);
                        sb.Append("],");
                    }
                    sb = sb.Remove(sb.Length - 1, 1);
                    sb.Append("]");
                }
                return sb.ToString();
            }
            catch (Exception ex)
            {
                Logger.WriteLog(ex.Message);
                return "";
            }
        }
        /// <summary>
        /// 表格返回JSON
        /// </summary>
        /// <param name="pqGrid_Sort">要显示字段</param>
        /// <param name="count"></param>
        /// <returns></returns>
        public static string GridTable(DataTable dt, string pqGrid_Sort)
        {
            try
            {
                string[] Sort_Field = pqGrid_Sort.Split(',');
                StringBuilder sb = new StringBuilder();
                if (DataTableHelper.IsExistRows(dt))
                {
                    foreach (DataRow dr in dt.Rows)
                    {
                        sb.Append("<tr>");
                        foreach (string item in Sort_Field)
                        {
                            if (dr[item] != null && dr[item] != DBNull.Value && dr[item].ToString() != "")
                                sb.Append("<td>" + dr[item] + "</td>");
                            else
                                sb.Append("<td></td>");
                        }
                        sb.Append("</tr>");
                    }
                }
                return sb.ToString();
            }
            catch (Exception ex)
            {
                Logger.WriteLog(ex.Message);
                return "";
            }
        }
        /// <summary>  
        /// Json特符字符过滤
        /// </summary>  
        /// <param name="sourceStr">要过滤的源字符串</param>  
        /// <returns>返回过滤的字符串</returns>  
        private static string JsonCharFilter(string sourceStr)
        {
            return sourceStr;
        }

    }
}

 

posted @ 2014-04-15 11:53  lengv10  阅读(931)  评论(0编辑  收藏  举报