将构datatable转JSON字符串

将构datatable转JSON字符串

 /// <summary>
        /// 将构datatable转JSON字符串
        /// </summary>
        /// <param name="dt"></param>
        /// <returns></returns>
        public static StringBuilder DataToJson(DataTable dt)
        {
            StringBuilder JsonText = new StringBuilder();
            JsonText.Append('[');
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                JsonText.Append('{');
                for (int j = 0; j < dt.Columns.Count; j++)
                {
                    JsonText.Append('"');
                    JsonText.Append(dt.Columns[j].ColumnName.Trim());//获取列名
                    JsonText.Append('"');
                    JsonText.Append(':');
                    JsonText.Append('"');
                    JsonText.Append(dt.Columns[j].ColumnName.Trim() == "Id" ? dt.Rows[i][j].ToString().Trim() : dt.Rows[i][j].ToString());//获取字段值
                    JsonText.Append('"');
                    JsonText.Append(',');
                }
                JsonText.Remove(JsonText.Length - 1, 1);
                JsonText.Append('}');
                JsonText.Append(',');
            }
            JsonText.Remove(JsonText.Length - 1, 1);
            JsonText.Append(']');
            return JsonText;
        }

xml转json

  /// <summary>
        /// xml转json
        /// </summary>
        /// <param name="XML"></param>
        /// <returns></returns>
        public static string ParseString(string XML)
        {
            StringBuilder sb = new StringBuilder();
            string Status = string.Empty;
            SortedDictionary<string, string> requestXML = GetInfoFromXml(XML);

            sb.Append("{");
            foreach (KeyValuePair<string, string> k in requestXML)
            {
                sb.Append("\"" + k.Key + "\"");
                sb.Append(":");
                if (k.Value.Contains("{\""))
                {
                    sb.Append("" + k.Value + "");
                }
                else
                {
                    sb.Append("\"" + k.Value + "\"");
                }
                sb.Append(",");
            }
            sb.Append("}");
            return sb.ToString();
        }

        /// <summary>
        /// 把XML数据转换为SortedDictionary<string, string>集合
        /// </summary>
        /// <param name="strxml"></param>
        /// <returns></returns>
        public static SortedDictionary<string, string> GetInfoFromXml(string xmlstring)
        {
            SortedDictionary<string, string> sParams = new SortedDictionary<string, string>();
            try
            {
                XmlDocument doc = new XmlDocument();
                doc.LoadXml(xmlstring);
                XmlElement root = doc.DocumentElement;
                int len = root.ChildNodes.Count;
                for (int i = 0; i < len; i++)
                {
                    string name = root.ChildNodes[i].Name;
                    if (!sParams.ContainsKey(name))
                    {
                        sParams.Add(name.Trim(), root.ChildNodes[i].InnerText.Trim());
                    }
                }
            }
            catch (Exception ex)
            {
            }
            return sParams;
        }

将对象属性转换为Hashtable

 /// <summary>
        /// 将对象属性转换为Hashtable
        /// </summary>
        /// <param name="o"></param>
        /// <returns></returns>
        public static Hashtable ToHashtable(Object o)
        {
            Hashtable Parameters = new Hashtable();

            Type t = o.GetType();

            PropertyInfo[] pi = t.GetProperties(BindingFlags.Public | BindingFlags.Instance);

            foreach (PropertyInfo p in pi)
            {
                MethodInfo mi = p.GetGetMethod();

                if (mi != null && mi.IsPublic)
                {
                    if (mi.Invoke(o, new object[] { }) != null)
                    {
                        if (Parameters.Contains(p.Name))
                        {
                            Parameters.Remove(p.Name);
                        }
                        Parameters.Add(p.Name, mi.Invoke(o, new object[] { }));
                    }
                }
            }
            return Parameters;
        }

将对象转换为xml

/// <summary>
        /// 输出XML
        /// </summary>
        /// <returns></returns>
        public static string ParseXML(Hashtable Parameters)
        {
            StringBuilder sb = new StringBuilder();
            ArrayList akeys = new ArrayList(Parameters.Keys);
            akeys.Sort();

            sb.Append("<xml>");
            foreach (string k in akeys)
            {
                string v = (string)Parameters[k];
                if (v != null)
                {
                    sb.Append("<" + k + ">" + v + "</" + k + ">");
                }
            }
            sb.Append("</xml>");
            return sb.ToString();
        }

将DataTable转换为标准的CSV字符串

        #region 将DataTable转换为标准的CSV字符串
        /// <summary>
        ///将DataTable转换为标准的CSV字符串
        /// </summary>
        /// <param name="dt">数据表</param>
        /// <returns>返回标准的CSV</returns>
        public static string ToCsvStr(this DataTable dt)
        {
            //以半角逗号(即,)作分隔符,列为空也要表达其存在。
            //列内容如存在半角逗号(即,)则用半角引号(即"")将该字段值包含起来。
            //列内容如存在半角引号(即")则应替换成半角双引号("")转义,并用半角引号(即"")将该字段值包含起来。
            StringBuilder sb = new StringBuilder();
            DataColumn colum;
            foreach (DataRow row in dt.Rows)
            {
                for (int i = 0; i < dt.Columns.Count; i++)
                {
                    colum = dt.Columns[i];
                    if (i != 0) sb.Append(",");
                    if (colum.DataType == typeof(string) && row[colum].ToString().Contains(","))
                    {
                        sb.Append("\"" + row[colum].ToString().Replace("\"", "\"\"") + "\"");
                    }
                    else sb.Append(row[colum].ToString());
                }
                sb.AppendLine();
            }

            return sb.ToString();
        } 
        #endregion
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

伴之则安博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值