json字符串中的特殊字符处理

 

实例代码:

 /// <summary>     
    /// dataTable转换成Json格式     
    /// </summary>     
    /// <param name="dt"></param>     
    /// <returns></returns>     
    public static string ToJsons(DataTable dt)
    {
        StringBuilder jsonBuilder = new StringBuilder();
        jsonBuilder.Append("[");
        for (int i = 0; i < dt.Rows.Count; i++)
        {
            jsonBuilder.Append("{");
            for (int j = 0; j < dt.Columns.Count; j++)
            {
                //判断数据类型,如果是日期类型将数据转换成短日期的
                if (dt.Rows[i][j].GetType().Name == "DateTime")
                {
                    string rowDate = Convert.ToDateTime(dt.Rows[i][j]).ToString("yyyy-MM-dd HH:mm:ss");
                    jsonBuilder.Append("\"");
                    jsonBuilder.Append(dt.Columns[j].ColumnName);
                    jsonBuilder.Append("\":\"");
                    jsonBuilder.Append(rowDate);
                    jsonBuilder.Append("\",");
                }
                else
                {
                    jsonBuilder.Append("\"");
                    jsonBuilder
.Append(dt.Columns[j].ColumnName);
                    jsonBuilder.Append("\":\"");
jsonBuilder.Append(dt.Rows[i][j].ToString().Replace("\\", "
\\\\").Replace("\'", "\\\'").

Replace("\t", " ").Replace("\r", " ").Replace("\n", "<br/>").Replace("\"", "'"));
                    jsonBuilder.Append("\",");
                }
            }
            jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
            jsonBuilder.Append("},");
        }
        jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
        jsonBuilder.Append("]");
        // jsonBuilder.Append("}");
        return jsonBuilder.ToString();
    }

 

有时候还要替换 回车换行的的字符   str.replace("<BR>","\r\n");   //注意 \r 表示回车  \n表示换行   <BR>是在extjs的htmleditor控件表示换行;"\r\n“在extjs的textarea控件中表示换行  在grid中\r\n不影响显示效果;&nbsp 是空格的编码但是在extjs的textarea不能表示空格,extjs中的textarea的空格 就是 “   ”;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值