解析毛病富文本json字符串(帶雙引號)的疾速處理辦法。本站提示廣大學習愛好者:(解析毛病富文本json字符串(帶雙引號)的疾速處理辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是解析毛病富文本json字符串(帶雙引號)的疾速處理辦法正文
公司的項目,經由過程json傳回來的是這麼個器械:
NewsId":"94f52614-8764-46d7-a5fe-d0da1fe878ed","NewsTitle":"年夜型公選課《可連續成長與將來》系列二之古代經濟(綠色經濟)開端網上選課報名","NewsContent":"<span ><span>近日,隨同著我校鄭時齡院士、童小華傳授分離在四平、嘉定舉辦的出色演講,本學期我校出力打造的年夜型公共選修課程《可連續成長與將來》之系列一曾經美滿停止。該課程也是我校</span>“<span>可連續成長輔修專業</span>”<span>的焦點?課程之一。</span></span> <p > </p>......... </span>
各類查詢以後發明沒法解析的基本緣由就是外面有雙引號" " "和反斜槓" \ ".
還不克不及直接對json停止本義,不然會將json自己自帶的雙引號都給本義了,所以不克不及暴力本義
上彀找的辦法:
//將壞的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); }</span>
此辦法能將json自己的雙引號之外的雙引號本義為中文的雙引號(其他甚麼都行)。如許就可以夠本義為准確的json字符串。
備忘:
在此辦法之前,還要將html代碼去空格,不然json也不克不及夠解析,去空格辦法:
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; }</span>
以上這篇解析毛病富文本json字符串(帶雙引號)的疾速處理辦法就是小編分享給年夜家的全體內容了,願望能給年夜家一個參考,也願望年夜家多多支撐。