什么是json的轉義字符-創(chuàng)新互聯(lián)

這期內(nèi)容當中小編將會給大家?guī)碛嘘P什么是json的轉義字符,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

成都一家集口碑和實力的網(wǎng)站建設服務商,擁有專業(yè)的企業(yè)建站團隊和靠譜的建站技術,十載企業(yè)及個人網(wǎng)站建設經(jīng)驗 ,為成都成百上千客戶提供網(wǎng)頁設計制作,網(wǎng)站開發(fā),企業(yè)網(wǎng)站制作建設等服務,包括成都營銷型網(wǎng)站建設,品牌網(wǎng)站設計,同時也為不同行業(yè)的客戶提供成都網(wǎng)站設計、做網(wǎng)站的服務,包括成都電商型網(wǎng)站制作建設,裝修行業(yè)網(wǎng)站制作建設,傳統(tǒng)機械行業(yè)網(wǎng)站建設,傳統(tǒng)農(nóng)業(yè)行業(yè)網(wǎng)站制作建設。在成都做網(wǎng)站,選網(wǎng)站制作建設服務商就選創(chuàng)新互聯(lián)。

轉義字符串(Escape Sequence)也稱字符實體(Character Entity)。在HTML中,定義轉義字符串的原因有兩個:第一個原因是像“<”和“>”這類符號已經(jīng)用來表示HTML標簽,因此就不能直接當做文本中的符號來使用。為了在HTML文檔中使用這些符號,就需要定義它的轉義字符串。當解釋程序遇到這類字符串時就把它解釋為真實的字符。在輸入轉義字符串時,要嚴格遵守字母大小寫的規(guī)則。第二個原因是,有些字符在ASCII字符集中沒有定義,因此需要使用轉義字符串來表示。

其實所有編程語言,擁有轉義字符的原因基本上是兩點:

一、使用轉義字符來表示字符集中定義的字符,比如ASCll里面的控制字符及回車換行等字符,這些字符都沒有現(xiàn)成的文字代號。所以只能用轉義字符來表示 。

二、某一些特定的字符在編輯語言中被定義為特殊用途的字符。

這些字符由于被定義為特殊用途,它們失去了原有的意義。比如說Html中,<被HTML定義為標簽的開始,所以當我們轉入<時,HTML就會把它當作為開始,而不是當作一個<來看待。再如PHP 的雙引號("),被PHP定義為字符串的外圍標簽,所以如果你在一對雙引號里面,還想要使用雙引號,只能使用轉義字符了。不然PHP就會報錯了。

從上面也可以看出轉義無非是兩種情況:

1:將普通字符轉為特殊用途,一般是編程語言中,用于表示不能直接顯示的字符,比如后退鍵,回車鍵,等。

2:用來將特殊意義的字符轉換回它原來的意義。一般用在正則表達式中。還有有些腳本語言是弱類型,有些語言比如html 并不是編程語言,而是標記語言,有些語言只有一種類型 比如shell 腳本語言,這些語言中字符串都不加引號” ” ,或者可以不加引號“ ”,所以有時候需要轉義字符說明某字符此時的身份是普通字符,而不是有特殊意義的元字符。

另外出于網(wǎng)站的安全。在數(shù)據(jù)寫入數(shù)據(jù)庫前,都會使用轉義字符(函數(shù))對一些敏感字符進行轉義。這樣做可以避免一些別有用心的人利用特殊符號的注入攻擊。

JSon串在被串行化后保存在文件中,讀取字符串時,是不能直接拿來用JSON.parse()解析為JSON  對象的。因為它是一個字符串,不是一個合法的JSON對象格式。

例如下面的JSON串保存在文件中,讀出來不能直接解析:

“{\"resourceId\":\"dfead70e4ec5c11e43514000ced0cdcaf\",\"properties\":{\"process_id\":\"process4\",\"name\":\"\",\"documentation\":\"\",\"processformtemplate\":\"\"}}"

這個串如果出現(xiàn)在代碼中是沒有問題的,因為反斜杠就表示轉義,但如果從文本文件中直接讀出來就是這個樣子,則不能直接用JSON.parse()進行解析,需要反串行化,消除掉反斜杠。有些programmer喜歡自己寫一個工具類來做這樣的事情,但已經(jīng)有方便快捷的工具類可以來做這件事情,毋需我們重復發(fā)明車輪子。

可以直接使用Apache 的 common.lang工具包(使用工具類:org.apache.commons.lang.StringEscapeUtils)。

例子如下:

public void test(){
	String str1 = "{\"resourceId\":\"dfead70e4ec5c11e43514000ced0cdcaf\",\"properties\":{\"process_id\":\"process4
	"+"\",\"name\":\"\",\"documentation\":\"\",\"processformtemplate\":\"\"}}";
	String tmp = StringEscapeUtils.unescapeJavaScript(str1);
	System.out.println("tmp:" + tmp);
}

輸出:

tmp:{"resourceId":"51ad70e41c5c11e88514000c290cdcfa","properties":{"process_id":"process4","name":"","documentation":"","processformtemplate":""}}

上述就是小編為大家分享的什么是json的轉義字符了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注創(chuàng)新互聯(lián)網(wǎng)站制作公司行業(yè)資訊頻道。

當前名稱:什么是json的轉義字符-創(chuàng)新互聯(lián)
路徑分享:http://bm7419.com/article26/dpogcg.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供服務器托管、網(wǎng)站排名外貿(mào)網(wǎng)站建設、網(wǎng)站設計公司、靜態(tài)網(wǎng)站、虛擬主機

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設