1. 程式人生 > >JSON解析值富文字

JSON解析值富文字

解析前端傳遞的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

  :