JSon串在被串行化后保存在文件中,讀取字符串時(shí),是不能直接拿來用JSON.parse()解析為JSON 對(duì)象的。因?yàn)樗且粋€(gè)字符串,不是一個(gè)合法的JSON對(duì)象格式。例如下面的JSON串保存在文件中,讀出來不能直接解析:
“{/"resourceId/":/"dfead70e4ec5c11e43514000ced0cdcaf/",/"properties/":{/"process_id/":/"process4/",/"name/":/"/",/"documentation/":/"/",/"processformtemplate/":/"/"}}"
這個(gè)串如果出現(xiàn)在代碼中是沒有問題的,因?yàn)榉葱备芫捅硎巨D(zhuǎn)義,但如果從文本文件中直接讀出來就是這個(gè)樣子,則不能直接用JSON.parse()進(jìn)行解析,需要反串行化,消除掉反斜杠。有些programmer喜歡自己寫一個(gè)工具類來做這樣的事情,但已經(jīng)有方便快捷的工具類可以來做這件事情,毋需我們重復(fù)發(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":""}}
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注