解析錯(cuò)誤富文本json字符串(帶雙引號(hào))的快速解決方法
公司的項(xiàng)目,通過json傳回來的是這么個(gè)東西:
NewsId":"94f52614-8764-46d7-a5fe-d0da1fe878ed","NewsTitle":"大型公選課《可持續(xù)發(fā)展與未來》系列二之現(xiàn)代經(jīng)濟(jì)(綠色經(jīng)濟(jì))開始網(wǎng)上選課報(bào)名","NewsContent":"<span style="font-size:12pt;font-family:宋體;color:black;line-height:150%;"><span>近日,伴隨著我校鄭時(shí)齡院士、童小華教授分別在四平、嘉定舉行的精彩演講,本學(xué)期我校著力打造的大型公共選修課程《可持續(xù)發(fā)展與未來》之系列一已經(jīng)圓滿結(jié)束。該課程也是我校</span>“<span>可持續(xù)發(fā)展輔修專業(yè)</span>”<span>的核心必修課程之一。</span></span> <p style="text-indent:21pt;"> </p>......... </span>
各種查詢之后發(fā)現(xiàn)無法解析的根本原因就是里面有雙引號(hào)" " "和反斜杠" \ ".
還不能直接對(duì)json進(jìn)行轉(zhuǎn)義,否則會(huì)將json本身自帶的雙引號(hào)都給轉(zhuǎn)義了,所以不能暴力轉(zhuǎn)義
上網(wǎng)找的方法:
//將壞的json數(shù)據(jù)里面的雙引號(hào),改為中文的雙引號(hào)(啥都行,只要不是雙引號(hào)就行)
	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本身的雙引號(hào)以外的雙引號(hào)轉(zhuǎn)義為中文的雙引號(hào)(其他什么都行)。這樣就能夠轉(zhuǎn)義為正確的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>
以上這篇解析錯(cuò)誤富文本json字符串(帶雙引號(hào))的快速解決方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持我們。
上一篇:總結(jié)C#刪除字符串?dāng)?shù)組中空字符串的幾種方法
欄 目:C#教程
本文標(biāo)題:解析錯(cuò)誤富文本json字符串(帶雙引號(hào))的快速解決方法
本文地址:http://www.jygsgssxh.com/a1/C_jiaocheng/6308.html
您可能感興趣的文章
- 01-10DirectoryEntry配置IIS7出現(xiàn)ADSI Error:未知錯(cuò)誤(0x80005000)
 - 01-10C#遍歷文件夾后上傳文件夾中所有文件錯(cuò)誤案例分析
 - 01-10ASP.NET MVC命名空間時(shí)引起錯(cuò)誤的解決方法
 - 01-10C#程序員最易犯的編程錯(cuò)誤
 - 01-10解析C#中斷言與異常的應(yīng)用方式及異常處理的流程控制
 - 01-10深入解析C#編程中struct所定義的結(jié)構(gòu)
 - 01-10深入解析C#中的交錯(cuò)數(shù)組與隱式類型的數(shù)組
 - 01-10解析C#中的私有構(gòu)造函數(shù)和靜態(tài)構(gòu)造函數(shù)
 - 01-10解析C#編程的通用結(jié)構(gòu)和程序書寫格式規(guī)范
 - 01-10解析C#中的常量及如何在C#編程中定義常量
 


閱讀排行
- 1C語言 while語句的用法詳解
 - 2java 實(shí)現(xiàn)簡(jiǎn)單圣誕樹的示例代碼(圣誕
 - 3利用C語言實(shí)現(xiàn)“百馬百擔(dān)”問題方法
 - 4C語言中計(jì)算正弦的相關(guān)函數(shù)總結(jié)
 - 5c語言計(jì)算三角形面積代碼
 - 6什么是 WSH(腳本宿主)的詳細(xì)解釋
 - 7C++ 中隨機(jī)函數(shù)random函數(shù)的使用方法
 - 8正則表達(dá)式匹配各種特殊字符
 - 9C語言十進(jìn)制轉(zhuǎn)二進(jìn)制代碼實(shí)例
 - 10C語言查找數(shù)組里數(shù)字重復(fù)次數(shù)的方法
 
本欄相關(guān)
- 01-10C#通過反射獲取當(dāng)前工程中所有窗體并
 - 01-10關(guān)于ASP網(wǎng)頁無法打開的解決方案
 - 01-10WinForm限制窗體不能移到屏幕外的方法
 - 01-10WinForm繪制圓角的方法
 - 01-10C#實(shí)現(xiàn)txt定位指定行完整實(shí)例
 - 01-10WinForm實(shí)現(xiàn)仿視頻播放器左下角滾動(dòng)新
 - 01-10C#停止線程的方法
 - 01-10C#實(shí)現(xiàn)清空回收站的方法
 - 01-10C#通過重寫Panel改變邊框顏色與寬度的
 - 01-10C#實(shí)現(xiàn)讀取注冊(cè)表監(jiān)控當(dāng)前操作系統(tǒng)已
 
隨機(jī)閱讀
- 04-02jquery與jsp,用jquery
 - 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
 - 08-05織夢(mèng)dedecms什么時(shí)候用欄目交叉功能?
 - 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
 - 08-05DEDE織夢(mèng)data目錄下的sessions文件夾有什
 - 01-10delphi制作wav文件的方法
 - 01-10C#中split用法實(shí)例總結(jié)
 - 01-11ajax實(shí)現(xiàn)頁面的局部加載
 - 01-10使用C語言求解撲克牌的順子及n個(gè)骰子
 - 08-05dedecms(織夢(mèng))副欄目數(shù)量限制代碼修改
 


