java處理解析帶有反斜杠的json
json處理依賴:fastjson
問題:
對一個(gè)json字符串轉(zhuǎn)換成fastjson中的JSONObject對象的時(shí)候如果該json字符串中帶有多余的反斜杠,可能會導(dǎo)致解析失敗;
舉例:
//現(xiàn)有一個(gè)json字符串
String s = "{\"job\":{\"setting\":{\"restore\":{\"maxRowNumForCheckpoint\":0,\"isRestore\":false,\"restoreColumnName\":\"\",\"restoreColumnIndex\":0},\"errorLimit\":{\"record\":100},\"speed\":{\"bytes\":0,\"channel\":1}}}}";
//對該字符串做處理
JSONObject jsonObject = JSONObject.parseObject(s);
System.out.println(jsonObject);這時(shí)候就會報(bào)錯(cuò)
這種簡單的反斜杠處理有兩種方式:
處理方法1:
簡單粗暴去掉字符串中的反斜杠:
//現(xiàn)有一個(gè)json字符串
String s = "{\"job\":{\"setting\":{\"restore\":{\"maxRowNumForCheckpoint\":0,\"isRestore\":false,\"restoreColumnName\":\"\",\"restoreColumnIndex\":0},\"errorLimit\":{\"record\":100},\"speed\":{\"bytes\":0,\"channel\":1}}}}";
//解析前去除反斜杠,將反斜杠替換為空字符串
s = StringUtils.replace(s, "\\", "");
//對該字符串做處理
JSONObject jsonObject = JSONObject.parseObject(s);
System.out.println(jsonObject);處理方法2:
解析前反轉(zhuǎn)義一下
//現(xiàn)有一個(gè)json字符串
String s = "{\"job\":{\"setting\":{\"restore\":{\"maxRowNumForCheckpoint\":0,\"isRestore\":false,\"restoreColumnName\":\"\",\"restoreColumnIndex\":0},\"errorLimit\":{\"record\":100},\"speed\":{\"bytes\":0,\"channel\":1}}}}";
//解析前反轉(zhuǎn)義該json字符串
s = StringEscapeUtils.unescapeJavaScript(s);
//對該字符串做處理
JSONObject jsonObject = JSONObject.parseObject(s);
System.out.println(jsonObject);如果這兩種方法都不行,或者說json中的反斜杠情況略微復(fù)雜,去除所有反斜杠后會讓json字符串的本意發(fā)生變化的話,那可以試試下面的方法
處理方法3(上述兩種方法不生效再考慮):
//現(xiàn)有一個(gè)json字符串
String s = "{\"job\":{\"setting\":{\"restore\":{\"maxRowNumForCheckpoint\":0,\"isRestore\":false,\"restoreColumnName\":\"\",\"restoreColumnIndex\":0},\"errorLimit\":{\"record\":100},\"speed\":{\"bytes\":0,\"channel\":1}}}}";
//解析前處理json字符串
s = new String(s);
//對該字符串做處理
JSONObject jsonObject = JSONObject.parseObject(s);
System.out.println(jsonObject);到此這篇關(guān)于java處理解析帶有反斜杠的json的文章就介紹到這了,更多相關(guān)java 反斜杠的json解析內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Java將json字符串轉(zhuǎn)換為數(shù)組的幾種方法
- java實(shí)現(xiàn)解析json復(fù)雜數(shù)據(jù)的方法詳解
- java實(shí)現(xiàn)解析json復(fù)雜數(shù)據(jù)的第三種思路詳解
- java解析json復(fù)雜數(shù)據(jù)的方法詳解
- java中對象和JSON格式的轉(zhuǎn)換方法代碼
- Java實(shí)現(xiàn)將枚舉類轉(zhuǎn)為json并返回給前端
- Java使用Fastjson進(jìn)行JSON數(shù)據(jù)操作教程詳解
- java實(shí)現(xiàn)XML與JSON轉(zhuǎn)換的便捷實(shí)用方法
相關(guān)文章
spring框架cacheAnnotation緩存注釋聲明解析
這篇文章主要介紹了spring框架中cacheAnnotation注釋聲明緩存解析示例有需要的朋友可以借鑒參考下,希望能夠有所幫助2021-10-10
Java數(shù)組傳遞及可變參數(shù)操作實(shí)例詳解
這篇文章主要介紹了Java數(shù)組傳遞及可變參數(shù)操作,結(jié)合實(shí)例形式詳細(xì)分析了java數(shù)組參數(shù)傳遞與可變參數(shù)相關(guān)使用技巧,需要的朋友可以參考下2019-09-09
Spring Security 密碼驗(yàn)證動態(tài)加鹽的驗(yàn)證處理方法
小編最近在改造項(xiàng)目,需要將gateway整合security在一起進(jìn)行認(rèn)證和鑒權(quán),今天小編給大家分享Spring Security 密碼驗(yàn)證動態(tài)加鹽的驗(yàn)證處理方法,感興趣的朋友一起看看吧2021-06-06
Java如何將String轉(zhuǎn)換成json對象或json數(shù)組
這篇文章主要介紹了Java如何將String轉(zhuǎn)換成json對象或json數(shù)組,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02
intellij idea中spring boot properties文件不能自動提示問題解決
這篇文章主要介紹了intellij idea中spring boot properties文件不能自動提示問題解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02
SpringBoot整合ELK實(shí)現(xiàn)日志監(jiān)控
這篇文章主要為大家詳細(xì)介紹了SpringBoot整合ELK實(shí)現(xiàn)日志監(jiān)控的相關(guān)知識,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-11-11
SpringCloud實(shí)現(xiàn)Redis在各個(gè)微服務(wù)的Session共享問題
Redis是運(yùn)行在內(nèi)存中,查取速度很快。本文重點(diǎn)給大家介紹SpringCloud實(shí)現(xiàn)Redis在各個(gè)微服務(wù)的Session共享,感興趣的朋友一起看看吧2018-08-08

