JSON 是轻量级的文本数据交换格式,简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言,所以在企业开发中经常会使用到json,那json如何处理换行符?下面来我们就来给大家讲解一下。
去掉显然不合适。有些字段本来就有换行符,如何能去掉?测试一下json类的处理,也没有发现。想不到最终的处理确实如此简单:
后台代码把换行符\r\n替换为\\r\\n,前台代码js收到的字符就是\r\n
public static string ConvertFromListTojson(IListlist, 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, 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, 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); } }
json解析有哪些方法?
解析JSON数据的三种方法的介绍如下:
eval()方法
解析JSON数据的最常用方法是使用javascript的eval()方法,代码如下:
代码如下:
function toJson(str) { var json = eval('(' + str + ')'); return json; }
该方法存在性能和安全方面的问题,不建议使用。
new Function方法
代码如下:
function toJson(str) { var json = (new Function("return " + str))(); return json; }
JSON.parse()方法
这种方法只支持IE8/Firefox3.5+/Chrome4/Safari4/Opera10 以上版本,这些浏览器都已经接近W3C标准,默认实现了toJSON方法。
代码如下:
function toJson(str) { return JSON.parse(str); }
json2.js会在浏览器原生支持JSON.parse的时候选用原生版本,而且它跟ES5是API兼容的。在ES5还没完全普及的现状下,John Resig大神推荐用json2.js主要是为了现在就能用跟ES5兼容的API,日后能平滑过渡到ES5——只要去掉一个import就换过来了。
我们进行json解析可以使用以上方法,json解析出的数据方便大家阅读以及理解,是开发中的好帮手!最后大家如果想要了解更多json工具教程知识,敬请关注奇Q工具网。
推荐阅读: