json数据+号变成空格,怎么办

前端将数据封装成json传到后端,+号变成了空格,应该怎么解决

加上转义字符"+"

加上转义字符+

'+' 字符在js传到后台的时候 都会被转义为' ' 的,所以可以将json字符串进行Base64转码之后再传到后台,安全性高一点,需要导入base64.js包代码如下:

     var  jsonStr = JSON.stringify(json)
     var base = new Base64();
     var jsonbase = base.encode(jsonStr)
     //这样就把json数据转码成为了base64字符串,将这个字符串做参数传到后台就行了,就避免了'+'被转义为' ' 

然后后台需要对base64字符串进行解码,代码如下:

            String jsonbase = request.getParameter("jsonbase");
            String pars = new String(Base64.decodeBase64(par), "UTF-8");
            HashMap<String, Object> map = (HashMap<String, Object>) JSON
                    .parse(pars);
            //这里就可以取到json里面的数据了。

encodeURIComponent编码下发送的数据

把加号直接换成%2B