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

