JSON解析值富文字
阿新 • • 發佈:2018-11-13
解析前端傳遞的JSON資料中可能如下
{ "result": "<input value="Test" type="button" onclick="alert(""OK"");" />", "msg": "test"}
此時去解析是無法解析出來的,存在 / 空格 多的雙引號,
參考多個結果
針對雙引號(利用中文雙引號代替多餘的英文雙引號後去解析JSON串)
public String jsonStringConvert(String s) { char[] temp = s.toCharArray(); int n = temp.length;for (int i = 0; i < n; i++) { if (temp[i] == ':' && temp[i + 1] == '"') { for (int j = i + 2; j < n; j++) { if (temp[j] == '"') { if (temp[j + 1] != ',' && temp[j + 1] != '}') { temp[j]= '”'; } else if (temp[j + 1] == ',' || temp[j + 1] == '}') { break; } } } } } return new String(temp); }
針對空格(先呼叫此方法)
public 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(""); // Pattern p2 = Pattern.compile("\\s*\""); // Matcher m2 = p2.matcher(dest); // dest = m2.replaceAll("\'"); dest = dest.replace("=\"", "='"); p = Pattern.compile("\"\0*>"); m = p.matcher(dest); dest = m.replaceAll(">'"); } return dest; }
以上會造成資料的格式少了空格,需要自己去新增上(不能很好的解決問題)
對雙引號進行轉譯
對富文字加密,後臺解密儲存
參考:https://blog.csdn.net/jbb0403/article/details/45918693
: