今天接收到一个字符串,转成JSON使用的时候报错,开发环境没问题,升级到生成环境报错,报错信息如下:cn.hutool.json.JSONException: Illegal escape. at 815 [character 41 line 39]。
错误产生原因:反斜杠(又称右斜杠"\"),在Java中表示转义字符,字符串中不能成单出现
解决办法:把单个"\" 改成 "\\"
工具类:
public class JSONEncodeUtil {
/**
* 将奇数个转义字符变为偶数个
*
* @param s
* @return
*/
public static String getDecodeJSONStr(String s) {
StringBuilder sb = new StringBuilder();
char c;
for (int i = 0; i < s.length(); i++) {
c = s.charAt(i);
switch (c) {
case '\\':
sb.append("\\\\");
break;
default:
sb.append(c);
}
}
return sb.toString();
}
}