json的中换行符的处理

来源:互联网 发布:自学c语言看什么书 编辑:程序博客网 时间:2024/05/22 09:02

    json作为ajax常用的一种数据类型,经常使用。但如果字段中出现换行符如何处理?

   去掉显然不合适。有些字段本来就有换行符,如何能去掉?

   测试一下json类的处理,也没有发现。想不到最终的处理确实如此简单:

后台代码把换行符\r\n替换为\\r\\n,前台代码js收到的字符就是\r\n

 public static string ConvertFromListTojson<T>(IList<T> list, int total, string columnInfos) where T : class    {        string[] cols = columnInfos.Split(new char[]{','},StringSplitOptions.RemoveEmptyEntries);        StringBuilder sb = new StringBuilder(300);        sb.Append("{\"total\":");        sb.Append(total);        sb.Append(",\"rows\":");        sb.Append("[");        foreach (T t in list)        {            sb.Append("{");            foreach (string col in cols)            {                string name = "\"{0}\":\"{1}\",";                string value = getValue<T>(t, col);                value = value.Replace("\r\n", "\\r\\n");                          sb.Append(string.Format(name, col, value));            }            if (cols.Length > 0)            {                int length = sb.Length;                sb.Remove(length - 1, 1);            }            sb.Append("},");        }        if (list.Count > 0)        {            int length2 = sb.Length;            sb.Remove(length2 - 1, 1);        }        sb.Append("]");        sb.Append("}");        return sb.ToString();    }    private static string getValue<T>(T t, string pname) where T : class    {        Type type = t.GetType();        PropertyInfo pinfo = type.GetProperty(pname);        if (pinfo != null)        {            object v = pinfo.GetValue(t, null);            return v != null ? v.ToString() : "";        }        else        {            throw new Exception("不存在属性" + pname);        }    }


原创粉丝点击