Java Json字符串的雙引號("")括號如何去掉
我就廢話不多說了,大家還是直接看代碼吧~
//自己copy試一下比什么都好 public static void main(String[] args) { String json = "[\"name\":\"value\",\"value1\"]"; String t = json.replaceAll("\\\"",""); System.out.println("去除雙引號和斜杠后:"+t); String replaceAll = t.replace("[", "").replace("]",""); System.out.println("去除左右中括號后:"+replaceAll); }
補充知識:java 替換json字符串中間的引號保留兩邊的引號,避免json校驗失敗
問題描述
解析爬取的json數(shù)據(jù)時,報如下錯誤:
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”名稱對應的所需結(jié)果
String allData = (String) JSONObject.parseObject(searchListStr).get("d");
調(diào)試時發(fā)現(xiàn)結(jié)果集 allData 字符串中間含有1個或多個雙引號(”)導致校驗失敗
{"mc":"崔記"純凈水經(jīng)營部"},
{"mc":"貳+壹"休閑吧"},
{"mc":"富貴鳥"皮鞋經(jīng)營店"},
{"mc":"紅萍果"窗簾"}
用在線JSON校驗格式化工具解析報錯:
第1行解析錯誤:
{"mc":"崔記"純凈水經(jīng)營部"},{"mc":"貳+壹
----------^
期望是 'EOF', '}', ':', ',', ']'
將字符串中間的雙引號”去掉就符合JSON格式了,校驗成功。
解決方法
當然是想辦法如何去掉字符串中間的雙引號。
直接替換引號是不行的,名稱/值對全是雙引號括起來的,只是多了中間的雙引號。
最后想了個方法,利用名稱/值對的固定格式進行雙引號單引號替換,其余的雙引號替換為空,然后單引號替換回雙引號。原字符串如 :
{“mc”:”崔記”純凈水經(jīng)營部”},{“mc”:”貳+壹”休閑吧”},…
String s = allData.replaceAll("\\{\"","{'") // {" --> {' .replaceAll("\":\"", "':'") // ":" --> ':' .replaceAll("\",\"", "','") // "," --> ',' .replaceAll("\":", "':") // ": --> ': .replaceAll(",\"", ",'") // ," --> ,' .replaceAll("\"\\}", "'}") // "} --> '} .replaceAll("\"", "") // " --> 空,以去掉字符串中間的引號 .replaceAll("'", "\"") // ' --> ",所有的單引號替換回雙引號 .replaceAll("<br />", "") // 去掉字符串中的<br /> .replaceAll("\\\\", "?"); // 字符串中含\也會導致解析失敗 JSONObject jsonData = JSONObject.parseObject(s);
這樣處理后,JSON 解析成功。
以上這篇Java Json字符串的雙引號("")括號如何去掉就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
mybatis Example Criteria like 模糊查詢問題
這篇文章主要介紹了mybatis Example Criteria like 模糊查詢問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-02-02Java設(shè)計模式之工廠模式實現(xiàn)方法詳解
這篇文章主要介紹了Java設(shè)計模式之工廠模式實現(xiàn)方法,結(jié)合實例形式較為詳細的分析了工廠模式的分類、原理、實現(xiàn)方法與相關(guān)注意事項,需要的朋友可以參考下2017-12-12Spring中配置Transaction與不配置的區(qū)別及說明
這篇文章主要介紹了Spring中配置Transaction與不配置的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-07-07Spring-基于Spring使用自定義注解及Aspect實現(xiàn)數(shù)據(jù)庫切換操作
這篇文章主要介紹了Spring-基于Spring使用自定義注解及Aspect實現(xiàn)數(shù)據(jù)庫切換操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧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