天天看點

html 反斜杠轉義,詳解json串反轉義(消除反斜杠)_蘇顔_前端開發者

JSon串在被串行化後儲存在檔案中,讀取字元串時,是不能直接拿來用JSON.parse()解析為JSON  對象的。因為它是一個字元串,不是一個合法的JSON對象格式。例如下面的JSON串儲存在檔案中,讀出來不能直接解析:

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

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

可以直接使用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”:””}}

以上就是本文的全部内容,希望對大家的學習有所幫助,也希望大家多多支援前端開發者。