java json乱码_Java Http请求传json数据乱码问题的解决
业务场景:调easyui的dialog打开一个弹窗,传参是用json封装的,而且有中文,然后在极速模式是正常的,在ie11测试发现中文出现乱码了
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数据,并转成list,然后在ie模式,获取到的json数据都出现中文乱码,然后导致json不能解析报错了
String params = request.getParameter("params");
logger.info("文书参数转换前:》》"+params);
params=StringEscapeUtils.unescapeJava(params);
logger.info("文书参数转换后:》》"+params);
ObjectMapper mapper = new ObjectMapper();
JavaType javaType = mapper.getTypeFactory().constructParametricType(List.class, ApprWritUnionFormModel.class);
/*List writUnionFormList =
JSON.parseArray(params, FormModel.class);*/
List writUnionFormList=new ArrayList();
try {
writUnionFormList = (List)mapper.readValue(params, javaType);
} catch (JsonParseException e) {
e.printStackTrace();
} catch (JsonMappingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
针对上面问题,和同事讨论,最开始打算base64加密来传,然后发现base64加密中文出现问题,所以改成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();
后台代码修改,解码一遍,然后发现在ie也正常
String params = request.getParameter("params");
logger.info("文书参数转换前:》》"+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("文书参数转换后:》》"+params);
ObjectMapper mapper = new ObjectMapper();
JavaType javaType = mapper.getTypeFactory().constructParametricType(List.class, ApprWritUnionFormModel.class);
/*List writUnionFormList =
JSON.parseArray(params, FormModel.class);*/
List writUnionFormList=new ArrayList();
try {
writUnionFormList = (List)mapper.readValue(params, javaType);
} catch (JsonParseException e) {
e.printStackTrace();
} catch (JsonMappingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
java json乱码_Java Http请求传json数据乱码问题的解决相关推荐
- java url路径中文乱码_Java Url请求方式中文乱码问题解决办法
jsp中post方式请求一般不会乱码,如果乱码加上这句: 解决办法一 request.setCharacterEncoding("utf-8"); 而get方式请求,若url含非西 ...
- java mysql插入数据乱码_java向mysql数据库插入数据显示乱码的问题
在做一个java web工程时,有时会碰到在向数据库添加数据库时,结果出现乱码"???"的问题.针对该问题的主要解决办法就是: 一.确保是否添加了字符集过滤器: 在java web ...
- python request post json_python接口之request测试:以json格式发送post请求,.json方法,查看响应结果的情况...
json和dict python中的dict类型要转换为json格式的数据需要用到json库: importjson = json.dumps() = json.loads() 需要注意的是pytho ...
- ajax请求解析json,如何为Ajax请求解析json响应?
我是ajax/javascript的新手.我试图解析响应下面Ajax请求:如何为Ajax请求解析json响应? function invokeMediationRestService(rql) { v ...
- java zip 压缩乱码_java实现zip压缩中文文件名乱码怎么办?
java实现zip压缩中文文件名乱码怎么办? java实现zip压缩中文文件名乱码的解决办法: 一.文件压缩的中文乱码问题 1.中文文件名的乱码解决 对于压缩的文件,当文件名称是中文时,若使用JDK ...
- java用HttpURLConnection发起HTTPS请求并跳过SSL证书,解决:unable to find valid certification path to requested targ
java用HttpURLConnection发起HTTPS请求并跳过SSL证书 问题出现:unable to find valid certification path to requested ta ...
- split逗号分割中文出现乱码java_Java中URL传中文时乱码的问题解决方案
前言 Java中URL传中文时乱码的问题相信不少朋友都遇到过,最近就遇到一个问题,就是在Action当中把一条中文信息绑定在URL的后面,ActionForward到别一个页面时,用reqeust.g ...
- ajax 传输中文乱码,关于Ajax请求中传输中文乱码问题的解决方案
今天遇到一个问题,有关ajax 请求中传输中文,遇到乱码的问题. 如下代码: function UpdateFolderInfoByCustId(folderId, folderName, custI ...
- java getreader_java后台发起get请求获取响应数据学习记录: 话不多说直接上代码
: package com.jl.chromeTest; import java.io.BufferedReader; import java.io.InputStreamReader; import ...
最新文章
- jquery 插件开发的作用域及基础
- 51CTO -- 网络自学的瓶颈期
- mysql多实例访问代理_MySql-Proxy之多路结果集归并
- jzoj4230-淬炼神体【0/1分数规划】
- 关于Arcgis工作空间的记忆点
- upnp协议和dlna源码理解与修改
- Windows Workflow Foundation之旅(六)——框架组成、工作流创作模式
- 数据结构与算法(Python)第四天
- linux shell ls -1 列显示文件
- 第七章7.8示例学习:统计每个字母出现的次数
- 实验吧Web-易-简单的sql注入之3(报错的sql盲注之exp)
- SDK接入学习(一):PlayerSetting详解(PC、Mac、Linux)
- 计算机提示应用程序无法启动,电脑应用程序无法正常启动提示0x000007b怎么办?...
- 人脸识别摄像头开发板和模组选型
- 波士顿大学研究生计算机科学专业排名,USnews2012美国大学排名计算机科学专业研究生排名...
- 阿里云体验--搭建超级小班课网课系统
- java 获取今天或者某一天是星期几/周几以及几号的方法
- Apple iPad Pro 与 iPad air有什么不一样
- 台湾国立大学(林轩田)《机器学习技法》(第7讲)blending and bagging
- macOS Redis 安装