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

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

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

業(yè)務場景:調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ù)據,并轉成list,然后在ie模式,獲取到的json數(shù)據都出現(xiàn)中文亂碼,然后導致json不能解析報錯了

String params = request.getParameter("params");
 logger.info("文書參數(shù)轉換前:》》"+params);
 params=StringEscapeUtils.unescapeJava(params);
 logger.info("文書參數(shù)轉換后:》》"+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ù)轉換前:》》"+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ù)轉換后:》》"+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();
 }

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

最新評論

扎鲁特旗| 南召县| 海南省| 方城县| 航空| 靖安县| 曲阳县| 佛冈县| 金塔县| 临沧市| 沙雅县| 北安市| 富阳市| 济南市| 隆回县| 和静县| 阿合奇县| 鹤壁市| 东源县| 蕉岭县| 儋州市| 马山县| 上蔡县| 宜良县| 黎平县| 崇信县| 基隆市| 交城县| 南和县| 湾仔区| 丰宁| 东方市| 德州市| 新余市| 奉化市| 沙河市| 勐海县| 东阿县| 紫云| 威信县| 安阳市|