Java Json字符串的雙引號(hào)("")括號(hào)如何去掉
我就廢話不多說了,大家還是直接看代碼吧~
//自己copy試一下比什么都好 public static void main(String[] args) { String json = "[\"name\":\"value\",\"value1\"]"; String t = json.replaceAll("\\\"",""); System.out.println("去除雙引號(hào)和斜杠后:"+t); String replaceAll = t.replace("[", "").replace("]",""); System.out.println("去除左右中括號(hào)后:"+replaceAll); }
補(bǔ)充知識(shí):java 替換json字符串中間的引號(hào)保留兩邊的引號(hào),避免json校驗(yàn)失敗
問題描述
解析爬取的json數(shù)據(jù)時(shí),報(bào)如下錯(cuò)誤:
com.alibaba.fastjson.JSONException: syntax error, position at 4164, name mc at com.alibaba.fastjson.parser.DefaultJSONParser.parseObject(DefaultJSONParser.java:586) at com.alibaba.fastjson.parser.DefaultJSONParser.parseArray(DefaultJSONParser.java:1157) at com.alibaba.fastjson.parser.DefaultJSONParser.parseObject(DefaultJSONParser.java:476) at com.alibaba.fastjson.parser.DefaultJSONParser.parse(DefaultJSONParser.java:1327) at com.alibaba.fastjson.parser.DefaultJSONParser.parse(DefaultJSONParser.java:1293) at com.alibaba.fastjson.JSON.parse(JSON.java:137) at com.alibaba.fastjson.JSON.parse(JSON.java:128) at com.alibaba.fastjson.JSON.parseObject(JSON.java:201) at com.nawang.crawl.GuizhouEnterpriseListCrawlAll2.crawlList(GuizhouEnterpriseListCrawlAll2.java:210) at com.nawang.crawl.GuizhouEnterpriseListCrawlAll2.main(GuizhouEnterpriseListCrawlAll2.java:85)
問題原因
獲取到”d”名稱對(duì)應(yīng)的所需結(jié)果
String allData = (String) JSONObject.parseObject(searchListStr).get("d");
調(diào)試時(shí)發(fā)現(xiàn)結(jié)果集 allData 字符串中間含有1個(gè)或多個(gè)雙引號(hào)(”)導(dǎo)致校驗(yàn)失敗
{"mc":"崔記"純凈水經(jīng)營部"},
{"mc":"貳+壹"休閑吧"},
{"mc":"富貴鳥"皮鞋經(jīng)營店"},
{"mc":"紅萍果"窗簾"}
用在線JSON校驗(yàn)格式化工具解析報(bào)錯(cuò):
第1行解析錯(cuò)誤:
{"mc":"崔記"純凈水經(jīng)營部"},{"mc":"貳+壹
----------^
期望是 'EOF', '}', ':', ',', ']'
將字符串中間的雙引號(hào)”去掉就符合JSON格式了,校驗(yàn)成功。
解決方法
當(dāng)然是想辦法如何去掉字符串中間的雙引號(hào)。
直接替換引號(hào)是不行的,名稱/值對(duì)全是雙引號(hào)括起來的,只是多了中間的雙引號(hào)。
最后想了個(gè)方法,利用名稱/值對(duì)的固定格式進(jìn)行雙引號(hào)單引號(hào)替換,其余的雙引號(hào)替換為空,然后單引號(hào)替換回雙引號(hào)。原字符串如 :
{“mc”:”崔記”純凈水經(jīng)營部”},{“mc”:”貳+壹”休閑吧”},…
String s = allData.replaceAll("\\{\"","{'") // {" --> {' .replaceAll("\":\"", "':'") // ":" --> ':' .replaceAll("\",\"", "','") // "," --> ',' .replaceAll("\":", "':") // ": --> ': .replaceAll(",\"", ",'") // ," --> ,' .replaceAll("\"\\}", "'}") // "} --> '} .replaceAll("\"", "") // " --> 空,以去掉字符串中間的引號(hào) .replaceAll("'", "\"") // ' --> ",所有的單引號(hào)替換回雙引號(hào) .replaceAll("<br />", "") // 去掉字符串中的<br /> .replaceAll("\\\\", "?"); // 字符串中含\也會(huì)導(dǎo)致解析失敗 JSONObject jsonData = JSONObject.parseObject(s);
這樣處理后,JSON 解析成功。
以上這篇Java Json字符串的雙引號(hào)("")括號(hào)如何去掉就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Java移除無效括號(hào)的方法實(shí)現(xiàn)
- java括號(hào)匹配算法求解(用棧實(shí)現(xiàn))
- java去除中文括號(hào)小括號(hào),或者英文括號(hào)的實(shí)例代碼
- Java List集合返回值去掉中括號(hào)(''[ ]'')的操作
- Java棧的應(yīng)用之括號(hào)匹配算法實(shí)例分析
- 使用Java的方式模擬Flutter的Widget實(shí)現(xiàn)多層括號(hào)嵌套
- java正則表達(dá)式獲取大括號(hào)小括號(hào)內(nèi)容并判斷數(shù)字和小數(shù)親測可用
- Java 括號(hào)匹配問題案例詳解
相關(guān)文章
mybatis Example Criteria like 模糊查詢問題
這篇文章主要介紹了mybatis Example Criteria like 模糊查詢問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02SpringBoot集成Swagger3的實(shí)現(xiàn)
本文主要介紹了SpringBoot集成Swagger3的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12Java設(shè)計(jì)模式之工廠模式實(shí)現(xiàn)方法詳解
這篇文章主要介紹了Java設(shè)計(jì)模式之工廠模式實(shí)現(xiàn)方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了工廠模式的分類、原理、實(shí)現(xiàn)方法與相關(guān)注意事項(xiàng),需要的朋友可以參考下2017-12-12Spring中配置Transaction與不配置的區(qū)別及說明
這篇文章主要介紹了Spring中配置Transaction與不配置的區(qū)別及說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07Spring-基于Spring使用自定義注解及Aspect實(shí)現(xiàn)數(shù)據(jù)庫切換操作
這篇文章主要介紹了Spring-基于Spring使用自定義注解及Aspect實(shí)現(xiàn)數(shù)據(jù)庫切換操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-09-09java 出現(xiàn)Zipexception 異常的解決辦法
這篇文章主要介紹了java 出現(xiàn)Zipexception 異常的解決辦法的相關(guān)資料,出現(xiàn) java.util.zip.ZipException: error in opening zip file 異常的原因及解決方法,需要的朋友可以參考下2017-08-08詳解OAuth2 Token 一定要放在請(qǐng)求頭中嗎
這篇文章主要介紹了詳解OAuth2 Token 一定要放在請(qǐng)求頭中嗎,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07