有人可以解释一下,这个MiniCore库特别适用于" GetDataTableToJson"功能有效

时间:2016-08-15 07:45:31

标签: c# asp.net json

public enum eCinsiyet : byte
{
    [Description("Erkek")]
    Erkek = 1,
    [Description("Kadın")]
    Kaıdn = 2
}
/// Durum bilgisi tanımı kullanılır
public enum eEvetHayir : byte
{
    [Description("Evet")]
    Evet = 1,
    [Description("Hayır")]
    Hayır = 0
}
public enum eAktifDurunu : byte
{
    [Description("Aktif")]
    Aktif = 1,
    [Description("Pasif")]
    Pasif = 0
}
public enum eVarYok
{
    [Description("Var")]
    Var = 1,
    [Description("Yok")]
    Yok = 0
}
public enum eKullaniciTipi : byte
{
    [Description("Yönetici")]
    Yönetici = 1,
    [Description("Üye")]
    Üye = 2,
    [Description("Misafir")]
    Misafir = 9
}
public class cAraclar
{
    public static Dictionary<int, string> VerEnumListesi(Type enumType)
    {
        Array Values = Enum.GetValues(enumType);
        string[] names = Enum.GetNames(enumType);
        Dictionary<int, string> dic = new Dictionary<int, string>();
        for (int i = 0; i <= names.GetUpperBound(0); i++)
            dic.Add(Convert.ToInt32(Enum.Parse(enumType, names[i])), GetDescription((Enum)Enum.Parse(enumType, names[i])));
        return dic;
    }
    public static string GetDescription(Enum values)
    {
        try
        {
            FieldInfo fi = values.GetType().GetField(values.ToString());
            DescriptionAttribute[] attributes =
                (DescriptionAttribute[])fi.GetCustomAttributes(typeof(DescriptionAttribute), false);
            string strvalue = string.Empty;
            if (string.IsNullOrEmpty(strvalue))
            {
                strvalue = (attributes.Length > 0) ? attributes[0].Description : values.ToString();
            }
            return strvalue;
        }
        catch
        {
            return null;
        }
    }
    public static string GetDataTableToJSon(DataTable ptdt, string allowCols)
    {
        //allowCols string ini indexof kullanabilmek için List e atıyoruz
        List<string> listCols = new List<string>();
        if (allowCols != null)
        {
            foreach (string s in allowCols.Split(','))
            {
                listCols.Add(s);
            }
        }
        //dönüş string i
        StringBuilder JsonString = new StringBuilder();
        if (ptdt != null && ptdt.Rows.Count > 0)
        {
            JsonString.Append("{ ");
            JsonString.Append("\"Table\":[ ");
            for (int i = 0; i < ptdt.Rows.Count; i++)
            {
                JsonString.Append("{ ");
                for (int j = 0; j < ptdt.Columns.Count; j++)
                {
                    if ((allowCols == null) || (listCols.IndexOf(ptdt.Columns[j].ColumnName.ToString()) > -1))
                    {
                        if (j < ptdt.Columns.Count - 1)
                            JsonString.Append("\"" + ptdt.Columns[j].ColumnName.ToString()
                                + "\":" + "\"" + EncodeJsString(ptdt.Rows[i][j].ToString()) + "\",");

                        else if (j == ptdt.Columns.Count - 1)
                            JsonString.Append("\"" + ptdt.Columns[j].ColumnName.ToString() +
                                "\":" + "\"" + EncodeJsString(ptdt.Rows[i][j].ToString()) + "\"");

                    }
                }
                if (i == ptdt.Rows.Count - 1)
                {

                    JsonString.Append("} ");

                }
                else
                {
                    JsonString.Append("}, ");
                }
            }
            JsonString.Append("]}");
            return JsonString.ToString();
        }
        else
        {
            return null;
        }
    }
    public static string EncodeJsString(string s)
    {
        StringBuilder sb = new StringBuilder();
        foreach (char c in s)
        {
            switch (c)
            {
                case '\"':
                    sb.Append("\\\"");
                    break;
                case '\\':
                    sb.Append("\\\\");
                    break;
                case '\b':
                    sb.Append("\\b");
                    break;
                case '\f':
                    sb.Append("\\f");
                    break;
                case '\n':
                    sb.Append("\\n");
                    break;
                case '\r':
                    sb.Append("\\r");
                    break;
                case '\t':
                    sb.Append("\\t");
                    break;
                default:
                    int i = (int)c;
                    if (i < 32 || i > 127)
                    {
                        sb.AppendFormat("\\u{0:X04}", i);
                    }
                    else
                    {
                        sb.Append(c);
                    }
                    break;
            }
        }

        return sb.ToString();
    }

    public static string URLDuzelt(string psrtKelime)
    {
        //Bu metodumuzlada Türkçe karakterleri temizleyip ingilizceye uyarlıyoruz
        string Temp = psrtKelime;
        Temp = Temp.Replace("-", ""); Temp = Temp.Replace(" ", "-");
        Temp = Temp.Replace("ç", "c"); Temp = Temp.Replace("ğ", "g");
        Temp = Temp.Replace("ı", "i"); Temp = Temp.Replace("ö", "o");
        Temp = Temp.Replace("ş", "s"); Temp = Temp.Replace("ü", "u");
        Temp = Temp.Replace("\"", ""); Temp = Temp.Replace("/", "");
        Temp = Temp.Replace("(", ""); Temp = Temp.Replace(")", "");
        Temp = Temp.Replace("{", ""); Temp = Temp.Replace("}", "");
        Temp = Temp.Replace("%", ""); Temp = Temp.Replace("&", "");
        Temp = Temp.Replace("+", ""); Temp = Temp.Replace(",", "");
        Temp = Temp.Replace("?", ""); Temp = Temp.Replace(".", "_");
        Temp = Temp.Replace("ı", "i");
        return Temp;
    }

}

}

0 个答案:

没有答案