1. 程式人生 > >解析錯誤富文字json字串(帶雙引號)的解決辦法

解析錯誤富文字json字串(帶雙引號)的解決辦法

公司的專案,通過json傳回來的是這麼個東西:

NewsId":"94f52614-8764-46d7-a5fe-d0da1fe878ed","NewsTitle":"大型公選課《可持續發展與未來》系列二之現代經濟(綠色經濟)開始網上選課報名","NewsContent":"<span style="font-size:12pt;font-family:宋體;color:black;line-height:150%;"><span>近日,伴隨著我校鄭時齡院士、童小華教授分別在四平、嘉定舉行的精彩演講,本學期我校著力打造的大型公共選修課程《可持續發展與未來》之系列一已經圓滿結束。該課程也是我校</span>“<span>可持續發展輔修專業</span>”<span>的核心必修課程之一。</span></span> 
<p style="text-indent:21pt;">
</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字串。

bingo

備忘:

在此方法之前,還要將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字串引號解決辦法

公司的專案,通過json傳回來的是這麼個東西: NewsId":"94f52614-8764-46d7-a5fe-d0da1fe878ed","NewsTitle":"大型公選課《可持續發展與未來》系

JSON字串key缺少引號解決方法

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

C++ 使用jsoncpp 封裝及解析 json字串包含複雜陣列

#include <json/json.h> #include <string> #include <iostream> using namespace std; int main() { //std::string strValue = "{\"na

java struts2返回Json字串intellij idea環境

在上一篇文章使用Intellij IDEA通過Maven搭建struts2的HelloWord(超詳細圖文教程)中, 我們知道了如何在intellij idea通過Maven構建struts2專案,現在我們將繼續在該專案中返回json字串內容,而不是直接返回到jsp檔案中。 環境

WangEditor文字編輯器圖片上傳

wangEditor基於javascript和css開發的 Web富文字編輯器, 輕量、簡潔、易用、開源免費 效果展示: 一:引入js <script type="text/javascript" src="./js/jquery.min.js"&

使用sourceTree向碼雲提交代碼時 push 錯誤 或認證失敗解決辦法

ack nbsp 隱藏 重新 img 打開文件 alt asi pos 如果出現push不進去或者使用命令push認證失敗時,很可能是你密碼有誤或者用戶沖突,解決辦法如下: 1.進入目錄,找到文件後先備份一下 註意:appData可能隱藏了,若是隱藏,先讓其顯示

ueditor文字編輯器跨域上傳圖片解決辦法

在使用百度富文字編輯器的過程中,如果是有一臺單獨的圖片伺服器就需要將上傳的圖片內容放到圖片伺服器,也就是比如在a.com的編輯器上傳圖片,圖片要儲存到img.com的跨域上傳圖片功能,而在ueditor官方文件中說不支援單圖上傳的跨域, 網上查了一下各種花裡胡哨,一頓操作猛如虎,比如加document.dom

百度文字ueditor和umeditor遇到的問題和解決辦法

專案中要用到釋出文章,所以選了百度的富文字;記錄一下自己走的坑。 開始使用的是umeditor,它屬於輕量級,功能比較少,有點是載入快,貌似只有183k吧。 umeditor用起來還是比較簡單,具體的程式碼被我刪了,因為用到後來發現它無法上傳本地視訊。。。簡短說下使用流程: 1、官網下載umeditor,放

一次替換多個詞,批量替換多個字串使用不了的解決辦法

三天前上CSDN,發現有人回覆批量替換多個詞的工具使用不了。下載下來試用了一下,確實報錯,這兩天打算做個網頁版本的,排版佈局還沒弄好。 上貼回覆以前工具使用不了的解決辦法:下載32位的jre,然後配置JAVA_HOME。 2、下載完畢解壓後,假如路徑(自

ORA-00923: FROM keyword not found where expected引號

1.前提   在學習oracel的過程中遇到的一個關於單雙引號的問題 備註一下 2.學習過程中建立表語句是這樣的 create table DEPT_DML --部門表( DEPT_NO NUMBER(8) not null, DEPT_NAME VARCHAR2(50), LOC

React Native報錯unddefined is not an objectevaluating ‘_reactnative.propTypes’解決辦法

報錯截圖 原程式是這樣寫的,然後一直出現錯誤,找不到PropTypes, import React,{Component } from 'react'; import { View,

Django 無法載入靜態檔案js,css,image解決辦法

原因:django部署方式比較特別,採用靜態檔案路徑:STATICFILES_DIRS的部署方式,之前你寫的相對路徑,絕對路徑因為缺少靜態檔案路徑而全部失效 但完全按照他的方法仍舊沒有解決我的問題,但我覺得思路是對的,可能在細節上出了點錯誤,果不其然,是配

Ubuntu 資料夾丟失左邊的側邊欄裝置 計算機 網路 解決辦法

在折騰Unity 3D 桌面的時候,折騰完了,發現資料夾左邊這一列導航欄沒了。 這下,要開啟windows下的分割槽也沒辦法了(或者說很麻煩了) 記得在玩3D特效的時候,有個快捷鍵好像是改了資料夾的佈局。 於是重新玩了一次。 找到了這個快捷鍵。 Shift + F9

JSON解析文字

解析前端傳遞的JSON資料中可能如下 { "result": "<input value="Test" type="button" onclick="alert(""OK"");" />", "msg": "test"}  此時去解析是無法解析出來的,存在 / 空格 多的雙引號,

輕量級web文字編輯器圖片上傳

業務需求: 通過後臺編輯文章和圖片,上傳到前端介面,展示新聞訊息模組。這個時候,需要一款簡潔的編輯器,百度編輯器是最常用的一種,但是功能太過於複雜,而wangEditor - 輕量級web富文字編輯器,配置方便,使用簡單。支援 IE10+ 瀏覽器,值得擁有。 wa

c/c++使用cJson解析未知內容的json字串

關於json我這裡就不做綴飾,這裡給出連結百度百科json 我這裡只介紹下json中的符號格式 ① { } : 雙括號表示一個json物件。例如:{"name":"ljl"},這代表一個name為ljl的物件 ②[ ] : 中括號表示陣列。例如:[{"name","ljl"},{"m

ajax解析success返回的json字串

假設收到伺服器返回的json字串:{id:1,name:Tom},{id:2,name:Jack} 解析方法如下: $.ajax({ url: usl, type : "post", dataType : "json", data : userData, succes

Axios傳參的兩種方式,表單資料和json字串Form Data和Request Payload

第一種方式:Form Data Axios引數配置: 1、引入 import Qs from 'qs' 2、 return request({ headers: { 'Content-Type': 'application/x-www-form-

jQuery拼接json字串json陣列自定義Jsonp

/** myJsonp:json陣列 myJsonp1:沒有複選框時用的方法,json字串 myJsonp2:有複選框時用的方法,json字串 myJsonp3:有複選框時和有編輯器時用的方法,json字串 */ (function ($) { //序列化和返序列化

文字編輯器UEditor的使用

富文字編輯器(UEditor)       在平時開發Java Web專案的時候,往往會使用第三方外掛來幫助我們更快的實現功能。       這裡教大家使用百度開源的富文字編輯器(UEditor)來幫助我們更好的編寫文字。 官網下載地址 這裡下載最新版