解析錯(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)無(wú)法解析的根本原因就是里面有雙引號(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è)參考,也希望大家多多支持腳本之家。
- Json_decode 解析json字符串為NULL的解決方法(必看)
- JS中Eval解析JSON字符串的一個(gè)小問題
- jquery解析json格式數(shù)據(jù)的方法(對(duì)象、字符串)
- Jquery解析json字符串及json數(shù)組的方法
- php解析http獲取的json字符串變量總是空白null
- VBScript把json字符串解析成json對(duì)象的2個(gè)方法
- 解析JSON對(duì)象與字符串之間的相互轉(zhuǎn)換
- js 將json字符串轉(zhuǎn)換為json對(duì)象的方法解析
- jQuery怎么解析Json字符串(Json格式/Json對(duì)象)
- JS解析json數(shù)據(jù)并將json字符串轉(zhuǎn)化為數(shù)組的實(shí)現(xiàn)方法
- 解析Json字符串的三種方法日常常用
相關(guān)文章
C#使用Microsoft消息隊(duì)列(MSMQ)的示例詳解
Microsoft?Message?Queuing?(MSMQ)?是在多個(gè)不同的應(yīng)用之間實(shí)現(xiàn)相互通信的一種異步傳輸模式,本文主要介紹了C#如何使用Microsoft消息隊(duì)列,需要的可以了解下2024-01-01
C#實(shí)現(xiàn)Windows服務(wù)安裝卸載開啟停止
本文主要介紹了C#實(shí)現(xiàn)Windows服務(wù)安裝卸載開啟停止,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07
C#?Timer控件學(xué)習(xí)之使用Timer解決按鈕冪等性問題
Timer控件又稱定時(shí)器控件或計(jì)時(shí)器控件,該控件的主要作用是按一定的時(shí)間間隔周期性地觸發(fā)一個(gè)名為Tick的事件,因此在該事件的代碼中可以放置一些需要每隔一段時(shí)間重復(fù)執(zhí)行的程序段,這篇文章主要介紹了關(guān)于C#使用Timer解決按鈕冪等性問題的相關(guān)資料,需要的朋友可以參考下2022-10-10
C# Winform實(shí)現(xiàn)自定義分頁(yè)控件
一些第三方的分頁(yè)控件要么就是界面不夠美觀大方,要么就是使用起來感覺很麻煩,所以本文就為大家介紹一下如何利用Winform自定義分頁(yè)控件,需要的可以參考一下2023-07-07
C#中加載dll并調(diào)用其函數(shù)的實(shí)現(xiàn)方法
下面小編就為大家?guī)硪黄狢#中加載dll并調(diào)用其函數(shù)的實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-02-02

