java處理解析帶有反斜杠的json
json處理依賴:fastjson
問題:
對一個json字符串轉(zhuǎn)換成fastjson中的JSONObject對象的時候如果該json字符串中帶有多余的反斜杠,可能會導(dǎo)致解析失??;
舉例:
//現(xiàn)有一個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);
這時候就會報錯
這種簡單的反斜杠處理有兩種方式:
處理方法1:
簡單粗暴去掉字符串中的反斜杠:
//現(xiàn)有一個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)有一個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)有一個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)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java編程實現(xiàn)時間和時間戳相互轉(zhuǎn)換實例
這篇文章主要介紹了什么是時間戳,以及Java編程實現(xiàn)時間和時間戳相互轉(zhuǎn)換實例,具有一定的參考價值,需要的朋友可以了解下。2017-09-09Spring Boot應(yīng)用配置常用相關(guān)視圖解析器詳解
這篇文章主要給大家介紹了關(guān)于Spring Boot應(yīng)用配置常用相關(guān)視圖解析器的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-12-12springboot中使用Hibernate-Validation校驗參數(shù)詳解
這篇文章主要為大家介紹了springboot中使用Hibernate-Validation校驗參數(shù)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-07-07Spring整合redis(jedis)實現(xiàn)Session共享的過程
這篇文章主要介紹了Spring整合redis(jedis)實現(xiàn)Session共享,需要的朋友可以參考下2018-06-06SpringBoot集成ShedLock實現(xiàn)分布式定時任務(wù)
ShedLock 是一個 Java 庫,通常用于分布式系統(tǒng)中,確保定時任務(wù)(Scheduled Tasks)在集群環(huán)境下只被某一個實例執(zhí)行一次,它通過在共享資源中添加鎖的方式,本文給大家介紹了SpringBoot集成ShedLock實現(xiàn)分布式定時任務(wù),需要的朋友可以參考下2024-11-11java中@ConfigurationProperties失效的問題解決
在Java開發(fā)中,使用@ConfigurationProperties注解讀取配置文件時,如果配置類中的屬性設(shè)置為static,將無法正確讀取配置值,本文就來介紹一下具體解決方法,感興趣的可以了解一下2024-09-09