js前端傳json后臺接收‘‘被轉為quot的問題解決
一、產(chǎn)生原因
前端傳json格式數(shù)據(jù),后臺接收卻發(fā)現(xiàn)有一堆& quot;,但是如果后臺接收參數(shù)用@RequestBody注解,則不會出現(xiàn)這個問題,出現(xiàn)這一問題的原因就是后臺沒有按照json格式去接收參數(shù),按照json接收參數(shù)的前提是請求頭 參數(shù)Content-Type:application/json,如此一來,后臺框架才知道如何去處理參數(shù),但有時候遇到的需求無法這么寫,例如發(fā)送下載請求:
json格式參數(shù)最常見的是發(fā)送ajax請求,但是ajax無法觸發(fā)瀏覽器下載機制,故不支持下載使用;
用a標簽發(fā)下載請求,攜帶參數(shù)有限,適合單個下載請求
利用form表單拼接參數(shù),提交表單發(fā)送請求,但無法發(fā)送攜帶json參數(shù)的請求,所以只能把json格式的字符串拼接到輸入框,后臺用String接收,這樣就會出現(xiàn)將引號轉譯為& quot;這一問題。
二、解決方案
1、方案一
使用org.apache.commons.lang.StringEscapeUtils這個類下的unescapeHtml()這個方法
@RequestMapping("/downloads")
public ResultVO downloads(String models) {
String jsonModels = StringEscapeUtils.unescapeHtml(models);
// 然后再去轉為你要的Object
return ResultVO.success();
}
pom依賴
<dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> <version>2.6</version> </dependency>
2、方案二
將所有的"替換回引號
String jsonModels = models.replaceAll(""", "\"");
三、結束
批量下載已搞定,頗有收獲,所以遇到問題還是需要耐心分析,認真記錄的,不僅要解決掉問題,還要知根知底。
另外感謝這篇文章 https://blog.csdn.net/charset_ok/article/details/80239882
到此這篇關于js前端傳json后臺接收‘‘被轉為"的問題解決的文章就介紹到這了,更多相關json后臺接收"內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
使用JSON格式提交數(shù)據(jù)到服務端的實例代碼
這篇文章主要介紹了使用JSON格式提交數(shù)據(jù)到服務端的實例代碼,代碼簡單易懂,非常不錯,具有參考借鑒價值,需要的朋友參考下2018-04-04
javascript AOP 實現(xiàn)ajax回調函數(shù)使用比較方便
javascript AOP 實現(xiàn)ajax回調函數(shù)使用比較方便,需要的朋友可以參考下。2010-11-11
javascript組合使用構造函數(shù)模式和原型模式實例
這篇文章主要介紹了javascript組合使用構造函數(shù)模式和原型模式的方法,通過一個簡單實例分析了javascript構造函數(shù)模式與原型模式的使用方法,需要的朋友可以參考下2015-06-06

