最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java Http請求傳json數(shù)據(jù)亂碼問題的解決

 更新時間:2019年09月01日 14:26:13   作者:smileNicky  
這篇文章主要介紹了Java Http請求傳json數(shù)據(jù)亂碼問題的解決,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

業(yè)務(wù)場景:調(diào)easyui的dialog打開一個彈窗,傳參是用json封裝的,而且有中文,然后在極速模式是正常的,在ie11測試發(fā)現(xiàn)中文出現(xiàn)亂碼了

var params = JSON.stringify(writParamList);
top.dialog({
  id: 'noticeList',
  title:'列表',
  width:900,
  height:500,
  url:'${root}/notice/multiNoticeList.do?params='+params,
  onclose:function(){
   //location.reload();
  }
}).showModal();

后臺獲取json數(shù)據(jù),并轉(zhuǎn)成list,然后在ie模式,獲取到的json數(shù)據(jù)都出現(xiàn)中文亂碼,然后導(dǎo)致json不能解析報錯了

String params = request.getParameter("params");
 logger.info("文書參數(shù)轉(zhuǎn)換前:》》"+params);
 params=StringEscapeUtils.unescapeJava(params);
 logger.info("文書參數(shù)轉(zhuǎn)換后:》》"+params);
 ObjectMapper mapper = new ObjectMapper();
 JavaType javaType = mapper.getTypeFactory().constructParametricType(List.class, ApprWritUnionFormModel.class);
 /*List<FormModel> writUnionFormList = 
  JSON.parseArray(params, FormModel.class);*/
 List<FormModel> writUnionFormList=new ArrayList<FormModel>();
 try {
  writUnionFormList = (List<FormModel>)mapper.readValue(params, javaType);
 } catch (JsonParseException e) {
  e.printStackTrace();
 } catch (JsonMappingException e) {
  e.printStackTrace();
 } catch (IOException e) {
  e.printStackTrace();
 }

針對上面問題,和同事討論,最開始打算base64加密來傳,然后發(fā)現(xiàn)base64加密中文出現(xiàn)問題,所以改成URLEncode的方式,前端加密兩遍,后臺在解密一遍

var params = JSON.stringify(writParamList);
top.dialog({
  id: 'noticeList',
  title:'列表',
  width:900,
  height:500,
  url:'${root}/notice/multiNoticeList.do?params='+encodeURI(encodeURI(params)),
  onclose:function(){
   //location.reload();
  }
}).showModal();

后臺代碼修改,解碼一遍,然后發(fā)現(xiàn)在ie也正常

String params = request.getParameter("params");
 logger.info("文書參數(shù)轉(zhuǎn)換前:》》"+params);
 //params=StringEscapeUtils.unescapeJava(params);
// byte[] buffer=Base64Utils.decodeFromString(params);
// params = new String(buffer);
  try {
  params=URLDecoder.decode(params,"utf-8");
 } catch (UnsupportedEncodingException e1) {
  e1.printStackTrace();
 }
 logger.info("文書參數(shù)轉(zhuǎn)換后:》》"+params);
 ObjectMapper mapper = new ObjectMapper();
 JavaType javaType = mapper.getTypeFactory().constructParametricType(List.class, ApprWritUnionFormModel.class);
 /*List<FormModel> writUnionFormList = 
  JSON.parseArray(params, FormModel.class);*/
 List<FormModel> writUnionFormList=new ArrayList<FormModel>();
 try {
  writUnionFormList = (List<FormModel>)mapper.readValue(params, javaType);
 } catch (JsonParseException e) {
  e.printStackTrace();
 } catch (JsonMappingException e) {
  e.printStackTrace();
 } catch (IOException e) {
  e.printStackTrace();
 }

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

调兵山市| 体育| 邯郸县| 抚宁县| 临城县| 永和县| 望谟县| 临泉县| 开阳县| 蒲城县| 朝阳县| 蒙山县| 肥西县| 海宁市| 满洲里市| 台北县| 石渠县| 什邡市| 天水市| 溧阳市| 汤阴县| 通江县| 高陵县| 曲水县| 赫章县| 宁安市| 平舆县| 镇赉县| 大城县| 关岭| 奎屯市| 台湾省| 河东区| 西丰县| 台安县| 高陵县| 沁水县| 丹棱县| 桂林市| 年辖:市辖区| 卢湾区|