数据库中数据偶尔有换行符、回车符,在java里取出数据拼JSON格式字符串的时候要出问题。

数据库的数据是难得动的,量太大了...sql语句改改倒是有可能,不过字段和语句也太多了...后台拼JSON字符串的时候有什么好办法么,难道一个属性一个属性的改过去...求教大家有没有好办法...
手工拼的StringBuilder还好,全替换一方法就行,不过有后台往前台返回的直接是JSONObject对象的情况,那些是直接一个属性一个属性的jobj.put('','')进去的,唔,难道要先把这对象转化成字符串,替换后再转回来么...话说有特殊符号能转么...
谢谢大家...
前台用的是easyui 的datagrid,如果给这个控件加载数据他会自动切掉换行符那些,但往combotree和格式化方法里面载入的时候,换行符就要破坏json格式导致无法载入...

public static String replaceBlank(String str) {
String dest = "";
if (str!=null) {
Pattern p = Pattern.compile("\\s*|\t|\r|\n");
Matcher m = p.matcher(str);
dest = m.replaceAll("");
}
return dest;
}

去一下换行 回车符 再拼接
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-04-15
用替换属性别Replace("'", "'"),我这里是引号,或者把字符串全部加码,用的时候解码。
第2个回答  2014-04-15
在字符串返回前处理
String info = sb.toString();
info = info.replaceAll("\r\n", "");如下:
result = result.replace("\n\r", "<br> ");
result = result.replace("\r\n", "<br> ");
result = result.replace("\t", " ");
result = result.replace(" ", " ");
result = result.replace("\"", "\\" + "\"");问题解决

不妨试试,祝你好运
可能是页面得到返回的json数据在解析的时候不能识别特殊字符串,而你在后台确实是可以看到的,两者不影响的。最终前台还是不能正常显示本回答被提问者采纳
第3个回答  2014-04-15
只有过滤了 对那些特殊符号进行过滤
相似回答